mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Refactor starlark to remove references to the build_image (#74624)
* Refactor starlark to remove references to the build_image
This commit is contained in:
parent
4f5728233c
commit
915f198ecb
20
.drone.star
20
.drone.star
@ -7,8 +7,9 @@
|
||||
This module returns a Drone configuration including pipelines and secrets.
|
||||
"""
|
||||
|
||||
load("scripts/drone/events/pr.star", "pr_pipelines")
|
||||
load("scripts/drone/events/cron.star", "cronjobs")
|
||||
load("scripts/drone/events/main.star", "main_pipelines")
|
||||
load("scripts/drone/events/pr.star", "pr_pipelines")
|
||||
load(
|
||||
"scripts/drone/events/release.star",
|
||||
"integration_test_pipelines",
|
||||
@ -17,24 +18,22 @@ load(
|
||||
"publish_packages_pipeline",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/rgm.star",
|
||||
"rgm",
|
||||
"scripts/drone/pipelines/ci_images.star",
|
||||
"publish_ci_build_container_image_pipeline",
|
||||
"publish_ci_windows_test_image_pipeline",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/publish_images.star",
|
||||
"publish_image_pipelines_public",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/ci_images.star",
|
||||
"publish_ci_build_container_image_pipeline",
|
||||
"publish_ci_windows_test_image_pipeline",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/windows.star",
|
||||
"windows_test_backend",
|
||||
)
|
||||
load("scripts/drone/version.star", "version_branch_pipelines")
|
||||
load("scripts/drone/events/cron.star", "cronjobs")
|
||||
load(
|
||||
"scripts/drone/rgm.star",
|
||||
"rgm",
|
||||
)
|
||||
load("scripts/drone/vault.star", "secrets")
|
||||
|
||||
def main(_ctx):
|
||||
@ -50,7 +49,6 @@ def main(_ctx):
|
||||
"event": ["promote"],
|
||||
"target": ["test-windows"],
|
||||
}, "oss", "testing")] +
|
||||
version_branch_pipelines() +
|
||||
integration_test_pipelines() +
|
||||
publish_ci_windows_test_image_pipeline() +
|
||||
publish_ci_build_container_image_pipeline() +
|
||||
|
1441
.drone.yml
1441
.drone.yml
File diff suppressed because it is too large
Load Diff
2
Makefile
2
Makefile
@ -291,7 +291,7 @@ scripts/drone/TAGS: $(shell find scripts/drone -name '*.star')
|
||||
etags --lang none --regex="/def \(\w+\)[^:]+:/\1/" --regex="/\s*\(\w+\) =/\1/" $^ -o $@
|
||||
|
||||
format-drone:
|
||||
buildifier -r scripts/drone
|
||||
buildifier --lint=fix -r scripts/drone
|
||||
|
||||
help: ## Display this help.
|
||||
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
|
||||
|
@ -1,628 +0,0 @@
|
||||
|
||||
events/release.star,6652
|
||||
ver_mode =ver_mode64,1602
|
||||
release_trigger =release_trigger65,1623
|
||||
def store_npm_packages_step():store_npm_packages_step74,1752
|
||||
def retrieve_npm_packages_step():retrieve_npm_packages_step90,2193
|
||||
def release_npm_packages_step():release_npm_packages_step107,2663
|
||||
def oss_pipelines(ver_mode = ver_mode, trigger = release_trigger):oss_pipelines123,3076
|
||||
environment =environment135,3492
|
||||
edition =edition136,3529
|
||||
services =services137,3549
|
||||
volumes =volumes138,3609
|
||||
package_steps =package_steps139,3659
|
||||
publish_steps =publish_steps140,3682
|
||||
should_publish =should_publish141,3705
|
||||
should_upload =should_upload142,3748
|
||||
init_steps =init_steps143,3818
|
||||
build_steps =build_steps152,4033
|
||||
integration_test_steps =integration_test_steps159,4342
|
||||
build_storybook =build_storybook182,5254
|
||||
publish_step =publish_step190,5674
|
||||
store_npm_step =store_npm_step191,5758
|
||||
windows_package_steps =windows_package_steps196,5957
|
||||
windows_pipeline =windows_pipeline198,6044
|
||||
name =name199,6077
|
||||
edition =edition200,6127
|
||||
trigger =trigger201,6154
|
||||
steps =steps202,6181
|
||||
platform =platform203,6256
|
||||
depends_on =depends_on204,6286
|
||||
environment =environment207,6393
|
||||
pipelines =pipelines209,6434
|
||||
name =name211,6470
|
||||
edition =edition212,6550
|
||||
trigger =trigger213,6581
|
||||
services =services214,6612
|
||||
steps =steps215,6639
|
||||
environment =environment216,6717
|
||||
volumes =volumes217,6756
|
||||
name =name225,6970
|
||||
edition =edition226,7038
|
||||
trigger =trigger227,7073
|
||||
services =services228,7108
|
||||
steps =steps229,7145
|
||||
environment =environment230,7329
|
||||
volumes =volumes231,7372
|
||||
deps =deps234,7433
|
||||
def enterprise_pipelines(ver_mode = ver_mode, trigger = release_trigger):enterprise_pipelines247,7856
|
||||
environment =environment259,8284
|
||||
edition =edition260,8328
|
||||
services =services261,8355
|
||||
volumes =volumes262,8415
|
||||
package_steps =package_steps263,8465
|
||||
publish_steps =publish_steps264,8488
|
||||
should_publish =should_publish265,8511
|
||||
should_upload =should_upload266,8554
|
||||
include_enterprise =include_enterprise267,8624
|
||||
edition2 =edition2268,8673
|
||||
init_steps =init_steps269,8702
|
||||
build_steps =build_steps277,8909
|
||||
integration_test_steps =integration_test_steps284,9218
|
||||
build_storybook =build_storybook312,10299
|
||||
publish_step =publish_step324,10892
|
||||
store_npm_step =store_npm_step325,10976
|
||||
windows_package_steps =windows_package_steps330,11175
|
||||
step =step333,11284
|
||||
deps_on_clone_enterprise_step =deps_on_clone_enterprise_step337,11418
|
||||
windows_pipeline =windows_pipeline347,11746
|
||||
name =name348,11779
|
||||
edition =edition349,11836
|
||||
trigger =trigger350,11863
|
||||
steps =steps351,11890
|
||||
platform =platform352,11965
|
||||
depends_on =depends_on353,11995
|
||||
environment =environment356,12109
|
||||
pipelines =pipelines358,12150
|
||||
name =name360,12186
|
||||
edition =edition361,12273
|
||||
trigger =trigger362,12304
|
||||
services =services363,12335
|
||||
steps =steps364,12362
|
||||
environment =environment365,12440
|
||||
volumes =volumes366,12479
|
||||
name =name374,12711
|
||||
edition =edition375,12786
|
||||
trigger =trigger376,12821
|
||||
services =services377,12856
|
||||
steps =steps378,12893
|
||||
environment =environment379,13213
|
||||
volumes =volumes380,13256
|
||||
deps =deps383,13317
|
||||
def enterprise2_pipelines(prefix = "", ver_mode = ver_mode, trigger = release_trigger):enterprise2_pipelines397,13769
|
||||
environment =environment412,14364
|
||||
edition =edition415,14424
|
||||
volumes =volumes416,14451
|
||||
package_steps =package_steps417,14501
|
||||
publish_steps =publish_steps418,14524
|
||||
should_publish =should_publish419,14547
|
||||
should_upload =should_upload420,14590
|
||||
include_enterprise =include_enterprise421,14660
|
||||
edition2 =edition2422,14709
|
||||
init_steps =init_steps423,14738
|
||||
build_steps =build_steps431,14945
|
||||
fetch_images =fetch_images442,15355
|
||||
upload_cdn =upload_cdn444,15497
|
||||
step =step458,16187
|
||||
deps_on_clone_enterprise_step =deps_on_clone_enterprise_step462,16321
|
||||
pipelines =pipelines472,16608
|
||||
name =name474,16644
|
||||
edition =edition475,16742
|
||||
trigger =trigger476,16773
|
||||
services =services477,16804
|
||||
steps =steps478,16831
|
||||
volumes =volumes479,16909
|
||||
environment =environment480,16940
|
||||
def publish_artifacts_step(mode):publish_artifacts_step486,17019
|
||||
security =security487,17053
|
||||
security =security489,17098
|
||||
def publish_artifacts_pipelines(mode):publish_artifacts_pipelines501,17538
|
||||
trigger =trigger502,17577
|
||||
steps =steps506,17655
|
||||
name =name512,17768
|
||||
trigger =trigger513,17820
|
||||
steps =steps514,17847
|
||||
edition =edition515,17870
|
||||
environment =environment516,17895
|
||||
def publish_packages_pipeline():publish_packages_pipeline519,17945
|
||||
trigger =trigger526,18162
|
||||
oss_steps =oss_steps530,18244
|
||||
enterprise_steps =enterprise_steps538,18560
|
||||
deps =deps545,18903
|
||||
name =name552,19062
|
||||
trigger =trigger553,19101
|
||||
steps =steps554,19128
|
||||
edition =edition555,19155
|
||||
depends_on =depends_on556,19180
|
||||
environment =environment557,19207
|
||||
name =name559,19266
|
||||
trigger =trigger560,19312
|
||||
steps =steps561,19339
|
||||
edition =edition562,19373
|
||||
depends_on =depends_on563,19398
|
||||
environment =environment564,19425
|
||||
def publish_npm_pipelines(mode):publish_npm_pipelines567,19482
|
||||
trigger =trigger568,19515
|
||||
steps =steps572,19593
|
||||
name =name580,19772
|
||||
trigger =trigger581,19827
|
||||
steps =steps582,19854
|
||||
edition =edition583,19877
|
||||
environment =environment584,19902
|
||||
def artifacts_page_pipeline():artifacts_page_pipeline587,19952
|
||||
trigger =trigger588,19983
|
||||
name =name593,20087
|
||||
trigger =trigger594,20128
|
||||
steps =steps595,20155
|
||||
edition =edition596,20220
|
||||
environment =environment597,20245
|
||||
def get_e2e_suffix():get_e2e_suffix600,20295
|
||||
|
||||
events/cron.star,1016
|
||||
aquasec_trivy_image =aquasec_trivy_image8,209
|
||||
def cronjobs(edition):cronjobs10,255
|
||||
grafana_com_nightly_pipeline =grafana_com_nightly_pipeline11,278
|
||||
cronName =cronName12,332
|
||||
name =name13,374
|
||||
steps =steps14,412
|
||||
def cron_job_pipeline(cronName, name, steps):cron_job_pipeline24,773
|
||||
def scan_docker_image_pipeline(edition, tag):scan_docker_image_pipeline43,1175
|
||||
edition =edition55,1530
|
||||
edition =edition57,1579
|
||||
docker_image =docker_image59,1608
|
||||
cronName =cronName62,1695
|
||||
name =name63,1725
|
||||
steps =steps64,1775
|
||||
def scan_docker_image_unkown_low_medium_vulnerabilities_step(docker_image):scan_docker_image_unkown_low_medium_vulnerabilities_step71,2047
|
||||
def scan_docker_image_high_critical_vulnerabilities_step(docker_image):scan_docker_image_high_critical_vulnerabilities_step80,2353
|
||||
def slack_job_failed_step(channel, image):slack_job_failed_step89,2646
|
||||
def post_to_grafana_com_step():post_to_grafana_com_step103,3069
|
||||
|
||||
events/main.star,633
|
||||
ver_mode =ver_mode49,966
|
||||
trigger =trigger50,984
|
||||
def main_pipelines(edition):main_pipelines62,1168
|
||||
drone_change_trigger =drone_change_trigger63,1197
|
||||
pipelines =pipelines79,1513
|
||||
name =name89,1951
|
||||
slack_channel =slack_channel90,1994
|
||||
trigger =trigger91,2045
|
||||
template =template92,2089
|
||||
secret =secret93,2135
|
||||
name =name97,2276
|
||||
slack_channel =slack_channel98,2310
|
||||
trigger =trigger99,2366
|
||||
depends_on =depends_on100,2425
|
||||
template =template101,2563
|
||||
secret =secret102,2604
|
||||
|
||||
events/pr.star,252
|
||||
ver_mode =ver_mode48,997
|
||||
trigger =trigger49,1013
|
||||
def pr_pipelines(edition):pr_pipelines62,1198
|
||||
def get_pr_trigger(include_paths = None, exclude_paths = None):get_pr_trigger76,2396
|
||||
paths_ex =paths_ex91,3080
|
||||
paths_in =paths_in92,3115
|
||||
|
||||
services/services.star,225
|
||||
def integration_test_services_volumes():integration_test_services_volumes5,79
|
||||
def integration_test_services(edition):integration_test_services14,292
|
||||
services =services15,332
|
||||
def ldap_service():ldap_service59,1616
|
||||
|
||||
utils/utils.star,561
|
||||
failure_template =failure_template11,191
|
||||
drone_change_template =drone_change_template12,509
|
||||
services =services19,932
|
||||
platform =platform20,955
|
||||
depends_on =depends_on21,983
|
||||
environment =environment22,1008
|
||||
volumes =volumes23,1036
|
||||
platform_conf =platform_conf50,2166
|
||||
platform_conf =platform_conf62,2534
|
||||
pipeline =pipeline70,2713
|
||||
def notify_pipeline(name, slack_channel, trigger, depends_on = [], template = None, secret = None):notify_pipeline105,3545
|
||||
trigger =trigger106,3645
|
||||
|
||||
pipelines/trigger_downstream.star,440
|
||||
trigger =trigger14,249
|
||||
def enterprise_downstream_pipeline(edition, ver_mode):enterprise_downstream_pipeline26,433
|
||||
environment =environment27,488
|
||||
steps =steps28,527
|
||||
deps =deps29,587
|
||||
name =name31,672
|
||||
edition =edition32,714
|
||||
trigger =trigger33,741
|
||||
services =services34,768
|
||||
steps =steps35,791
|
||||
depends_on =depends_on36,814
|
||||
environment =environment37,841
|
||||
|
||||
pipelines/verify_starlark.star,323
|
||||
def verify_starlark(trigger, ver_mode):verify_starlark17,305
|
||||
environment =environment18,345
|
||||
steps =steps19,382
|
||||
name =name26,546
|
||||
edition =edition27,600
|
||||
trigger =trigger28,625
|
||||
services =services29,652
|
||||
steps =steps30,675
|
||||
environment =environment31,698
|
||||
|
||||
pipelines/build.star,508
|
||||
def build_e2e(trigger, ver_mode, edition):build_e2e39,936
|
||||
environment =environment50,1096
|
||||
variants =variants51,1135
|
||||
init_steps =init_steps52,1219
|
||||
build_steps =build_steps61,1491
|
||||
publish_suffix =publish_suffix107,4049
|
||||
publish_suffix =publish_suffix109,4100
|
||||
name =name112,4158
|
||||
edition =edition113,4224
|
||||
environment =environment114,4249
|
||||
services =services115,4284
|
||||
steps =steps116,4307
|
||||
trigger =trigger117,4349
|
||||
|
||||
pipelines/shellcheck.star,386
|
||||
trigger =trigger15,235
|
||||
def shellcheck_step():shellcheck_step31,483
|
||||
def shellcheck_pipeline():shellcheck_pipeline43,725
|
||||
environment =environment44,752
|
||||
steps =steps45,789
|
||||
name =name50,886
|
||||
edition =edition51,918
|
||||
trigger =trigger52,943
|
||||
services =services53,970
|
||||
steps =steps54,993
|
||||
environment =environment55,1016
|
||||
|
||||
pipelines/verify_drone.star,317
|
||||
def verify_drone(trigger, ver_mode):verify_drone17,293
|
||||
environment =environment18,330
|
||||
steps =steps19,367
|
||||
name =name26,528
|
||||
edition =edition27,579
|
||||
trigger =trigger28,604
|
||||
services =services29,631
|
||||
steps =steps30,654
|
||||
environment =environment31,677
|
||||
|
||||
pipelines/test_backend.star,474
|
||||
def test_backend(trigger, ver_mode, edition = "oss"):test_backend23,463
|
||||
environment =environment35,882
|
||||
init_steps =init_steps36,921
|
||||
test_steps =test_steps46,1291
|
||||
pipeline_name =pipeline_name51,1387
|
||||
pipeline_name =pipeline_name53,1492
|
||||
name =name55,1584
|
||||
edition =edition56,1614
|
||||
trigger =trigger57,1641
|
||||
services =services58,1668
|
||||
steps =steps59,1691
|
||||
environment =environment60,1732
|
||||
|
||||
pipelines/lint_frontend.star,415
|
||||
def lint_frontend_pipeline(trigger, ver_mode):lint_frontend_pipeline16,260
|
||||
environment =environment26,546
|
||||
yarn_step =yarn_step27,583
|
||||
init_steps =init_steps29,660
|
||||
test_steps =test_steps33,736
|
||||
name =name37,812
|
||||
edition =edition38,864
|
||||
trigger =trigger39,889
|
||||
services =services40,916
|
||||
steps =steps41,939
|
||||
environment =environment42,980
|
||||
|
||||
pipelines/docs.star,494
|
||||
docs_paths =docs_paths19,383
|
||||
def docs_pipelines(edition, ver_mode, trigger):docs_pipelines28,511
|
||||
environment =environment29,559
|
||||
steps =steps30,598
|
||||
name =name40,815
|
||||
edition =edition41,858
|
||||
trigger =trigger42,885
|
||||
services =services43,912
|
||||
steps =steps44,935
|
||||
environment =environment45,958
|
||||
def lint_docs():lint_docs48,1000
|
||||
def trigger_docs_main():trigger_docs_main63,1328
|
||||
def trigger_docs_pr():trigger_docs_pr72,1478
|
||||
|
||||
pipelines/test_frontend.star,476
|
||||
def test_frontend(trigger, ver_mode, edition = "oss"):test_frontend20,374
|
||||
environment =environment32,794
|
||||
init_steps =init_steps33,833
|
||||
test_steps =test_steps41,1102
|
||||
pipeline_name =pipeline_name45,1205
|
||||
pipeline_name =pipeline_name47,1311
|
||||
name =name49,1404
|
||||
edition =edition50,1434
|
||||
trigger =trigger51,1461
|
||||
services =services52,1488
|
||||
steps =steps53,1511
|
||||
environment =environment54,1552
|
||||
|
||||
pipelines/integration_tests.star,483
|
||||
def integration_tests(trigger, ver_mode, edition):integration_tests26,542
|
||||
environment =environment37,900
|
||||
services =services38,939
|
||||
volumes =volumes39,989
|
||||
init_steps =init_steps40,1039
|
||||
test_steps =test_steps48,1282
|
||||
name =name54,1412
|
||||
edition =edition55,1468
|
||||
trigger =trigger56,1493
|
||||
services =services57,1520
|
||||
steps =steps58,1549
|
||||
environment =environment59,1590
|
||||
volumes =volumes60,1625
|
||||
|
||||
pipelines/windows.star,954
|
||||
def windows(trigger, edition, ver_mode):windows17,339
|
||||
environment =environment29,798
|
||||
init_cmds =init_cmds30,837
|
||||
steps =steps38,1205
|
||||
bucket =bucket49,1497
|
||||
ver_part =ver_part51,1590
|
||||
dir =dir52,1628
|
||||
dir =dir54,1670
|
||||
bucket =bucket55,1695
|
||||
build_no =build_no56,1736
|
||||
ver_part =ver_part57,1780
|
||||
installer_commands =installer_commands58,1842
|
||||
committish =committish100,3763
|
||||
committish =committish102,3846
|
||||
committish =committish104,3906
|
||||
download_grabpl_step_cmds =download_grabpl_step_cmds107,4057
|
||||
clone_cmds =clone_cmds113,4363
|
||||
name =name146,5711
|
||||
edition =edition147,5742
|
||||
trigger =trigger148,5769
|
||||
steps =steps149,5830
|
||||
depends_on =depends_on150,5889
|
||||
platform =platform151,6007
|
||||
environment =environment152,6037
|
||||
|
||||
pipelines/lint_backend.star,418
|
||||
def lint_backend_pipeline(trigger, ver_mode):lint_backend_pipeline18,306
|
||||
environment =environment28,590
|
||||
wire_step =wire_step29,627
|
||||
init_steps =init_steps31,704
|
||||
test_steps =test_steps36,809
|
||||
name =name43,959
|
||||
edition =edition44,1010
|
||||
trigger =trigger45,1035
|
||||
services =services46,1062
|
||||
steps =steps47,1085
|
||||
environment =environment48,1126
|
||||
|
||||
pipelines/publish_images.star,998
|
||||
def publish_image_steps(edition, mode, docker_repo):publish_image_steps17,303
|
||||
additional_docker_repo =additional_docker_repo31,922
|
||||
additional_docker_repo =additional_docker_repo33,979
|
||||
steps =steps34,1034
|
||||
def publish_image_pipelines_public():publish_image_pipelines_public45,1369
|
||||
mode =mode51,1521
|
||||
trigger =trigger52,1541
|
||||
name =name57,1641
|
||||
trigger =trigger58,1694
|
||||
steps =steps59,1721
|
||||
edition =edition60,1813
|
||||
environment =environment61,1835
|
||||
name =name63,1894
|
||||
trigger =trigger64,1954
|
||||
steps =steps65,1981
|
||||
edition =edition66,2091
|
||||
environment =environment67,2113
|
||||
def publish_image_pipelines_security():publish_image_pipelines_security70,2170
|
||||
mode =mode71,2210
|
||||
trigger =trigger72,2232
|
||||
name =name77,2332
|
||||
trigger =trigger78,2392
|
||||
steps =steps79,2419
|
||||
edition =edition80,2529
|
||||
environment =environment81,2551
|
||||
|
||||
steps/lib.star,8579
|
||||
grabpl_version =grabpl_version7,181
|
||||
build_image =build_image8,208
|
||||
publish_image =publish_image9,254
|
||||
deploy_docker_image =deploy_docker_image10,304
|
||||
alpine_image =alpine_image11,380
|
||||
curl_image =curl_image12,411
|
||||
windows_image =windows_image13,452
|
||||
wix_image =wix_image14,501
|
||||
go_image =go_image15,536
|
||||
disable_tests =disable_tests17,564
|
||||
trigger_oss =trigger_oss18,586
|
||||
def slack_step(channel, template, secret):slack_step24,653
|
||||
def yarn_install_step(edition = "oss"):yarn_install_step35,918
|
||||
deps =deps36,958
|
||||
deps =deps38,1004
|
||||
def wire_install_step():wire_install_step48,1222
|
||||
def identify_runner_step(platform = "linux"):identify_runner_step60,1454
|
||||
def clone_enterprise_step(ver_mode):clone_enterprise_step78,1916
|
||||
committish =committish87,2193
|
||||
committish =committish89,2268
|
||||
committish =committish91,2317
|
||||
def init_enterprise_step(ver_mode):init_enterprise_step105,2747
|
||||
source_commit =source_commit115,3098
|
||||
source_commit =source_commit117,3151
|
||||
environment =environment118,3191
|
||||
token =token121,3280
|
||||
environment =environment123,3369
|
||||
token =token126,3458
|
||||
environment =environment128,3518
|
||||
token =token129,3543
|
||||
def download_grabpl_step(platform = "linux"):download_grabpl_step148,4147
|
||||
def lint_drone_step():lint_drone_step173,4973
|
||||
def lint_starlark_step():lint_starlark_step185,5216
|
||||
def enterprise_downstream_step(edition, ver_mode):enterprise_downstream_step206,6000
|
||||
repo =repo219,6482
|
||||
step =step225,6623
|
||||
def lint_backend_step():lint_backend_step247,7248
|
||||
def benchmark_ldap_step():benchmark_ldap_step265,7713
|
||||
def build_storybook_step(edition, ver_mode):build_storybook_step278,8087
|
||||
def store_storybook_step(edition, ver_mode, trigger = None):store_storybook_step300,8743
|
||||
commands =commands314,9202
|
||||
commands =commands323,9521
|
||||
step =step325,9593
|
||||
when_cond =when_cond338,10125
|
||||
step =step346,10330
|
||||
def e2e_tests_artifacts(edition):e2e_tests_artifacts349,10391
|
||||
def upload_cdn_step(edition, ver_mode, trigger = None):upload_cdn_step386,12378
|
||||
deps =deps397,12763
|
||||
step =step407,12970
|
||||
step =step420,13423
|
||||
def build_backend_step(edition, ver_mode, variants = None):build_backend_step423,13482
|
||||
variants_str =variants_str437,14070
|
||||
variants_str =variants_str439,14109
|
||||
cmds =cmds443,14256
|
||||
build_no =build_no449,14418
|
||||
cmds =cmds450,14461
|
||||
def build_frontend_step(edition, ver_mode):build_frontend_step468,14906
|
||||
build_no =build_no478,15246
|
||||
cmds =cmds482,15356
|
||||
cmds =cmds487,15505
|
||||
def build_frontend_package_step(edition, ver_mode):build_frontend_package_step505,15960
|
||||
build_no =build_no515,16312
|
||||
cmds =cmds519,16422
|
||||
cmds =cmds524,16580
|
||||
def build_plugins_step(edition, ver_mode):build_plugins_step542,17053
|
||||
env =env544,17121
|
||||
env =env548,17220
|
||||
def test_backend_step():test_backend_step563,17607
|
||||
def test_backend_integration_step():test_backend_integration_step575,17880
|
||||
def betterer_frontend_step(edition = "oss"):betterer_frontend_step587,18187
|
||||
deps =deps596,18427
|
||||
def test_frontend_step(edition = "oss"):test_frontend_step609,18728
|
||||
deps =deps618,18962
|
||||
def lint_frontend_step():lint_frontend_step634,19343
|
||||
def test_a11y_frontend_step(ver_mode, edition, port = 3001):test_a11y_frontend_step652,19793
|
||||
commands =commands664,20279
|
||||
failure =failure667,20345
|
||||
failure =failure672,20483
|
||||
def frontend_metrics_step(edition, trigger = None):frontend_metrics_step693,21146
|
||||
step =step706,21507
|
||||
step =step721,22007
|
||||
def codespell_step():codespell_step724,22066
|
||||
def package_step(edition, ver_mode, variants = None):package_step736,22468
|
||||
deps =deps750,23006
|
||||
variants_str =variants_str757,23167
|
||||
variants_str =variants_str759,23206
|
||||
sign_args =sign_args762,23332
|
||||
env =env763,23362
|
||||
test_args =test_args769,23628
|
||||
sign_args =sign_args771,23661
|
||||
env =env772,23684
|
||||
test_args =test_args773,23703
|
||||
cmds =cmds777,23829
|
||||
build_no =build_no784,24036
|
||||
cmds =cmds785,24079
|
||||
def grafana_server_step(edition, port = 3001):grafana_server_step798,24459
|
||||
package_file_pfx =package_file_pfx808,24729
|
||||
package_file_pfx =package_file_pfx810,24788
|
||||
package_file_pfx =package_file_pfx812,24889
|
||||
environment =environment814,24938
|
||||
def e2e_tests_step(suite, edition, port = 3001, tries = None):e2e_tests_step837,25554
|
||||
cmd =cmd838,25617
|
||||
def cloud_plugins_e2e_tests_step(suite, edition, cloud, trigger = None):cloud_plugins_e2e_tests_step856,26186
|
||||
environment =environment869,26649
|
||||
when =when870,26670
|
||||
when =when872,26700
|
||||
environment =environment874,26748
|
||||
when =when882,27129
|
||||
branch =branch888,27345
|
||||
step =step889,27401
|
||||
step =step901,27822
|
||||
def build_docs_website_step():build_docs_website_step904,27874
|
||||
def copy_packages_for_docker_step(edition = None):copy_packages_for_docker_step916,28272
|
||||
def build_docker_images_step(edition, archs = None, ubuntu = False, publish = False):build_docker_images_step929,28622
|
||||
cmd =cmd943,29193
|
||||
ubuntu_sfx =ubuntu_sfx947,29307
|
||||
ubuntu_sfx =ubuntu_sfx949,29342
|
||||
environment =environment955,29468
|
||||
def fetch_images_step(edition):fetch_images_step979,30079
|
||||
def publish_images_step(edition, ver_mode, mode, docker_repo, trigger = None):publish_images_step997,30745
|
||||
name =name1013,31562
|
||||
docker_repo =docker_repo1014,31585
|
||||
mode =mode1016,31663
|
||||
mode =mode1018,31709
|
||||
environment =environment1020,31728
|
||||
cmd =cmd1026,31912
|
||||
deps =deps1029,32041
|
||||
deps =deps1032,32147
|
||||
name =name1035,32250
|
||||
docker_repo =docker_repo1036,32273
|
||||
cmd =cmd1038,32459
|
||||
step =step1040,32565
|
||||
step =step1052,32929
|
||||
def postgres_integration_tests_step():postgres_integration_tests_step1056,32989
|
||||
cmds =cmds1057,33028
|
||||
def mysql_integration_tests_step():mysql_integration_tests_step1079,33850
|
||||
cmds =cmds1080,33886
|
||||
def redis_integration_tests_step():redis_integration_tests_step1100,34629
|
||||
def memcached_integration_tests_step():memcached_integration_tests_step1114,35026
|
||||
def release_canary_npm_packages_step(edition, trigger = None):release_canary_npm_packages_step1128,35435
|
||||
step =step1141,35805
|
||||
step =step1153,36143
|
||||
def enterprise2_suffix(edition):enterprise2_suffix1156,36202
|
||||
def upload_packages_step(edition, ver_mode, trigger = None):upload_packages_step1161,36320
|
||||
deps =deps1176,36816
|
||||
step =step1184,37036
|
||||
step =step1195,37471
|
||||
def publish_grafanacom_step(edition, ver_mode):publish_grafanacom_step1198,37530
|
||||
cmd =cmd1211,38044
|
||||
build_no =build_no1215,38188
|
||||
cmd =cmd1216,38231
|
||||
def publish_linux_packages_step(edition, package_manager = "deb"):publish_linux_packages_step1239,38866
|
||||
def get_windows_steps(edition, ver_mode):get_windows_steps1261,39989
|
||||
init_cmds =init_cmds1270,40281
|
||||
steps =steps1278,40649
|
||||
bucket =bucket1289,40941
|
||||
ver_part =ver_part1291,41034
|
||||
dir =dir1292,41072
|
||||
dir =dir1294,41114
|
||||
bucket =bucket1295,41139
|
||||
build_no =build_no1296,41180
|
||||
ver_part =ver_part1297,41224
|
||||
installer_commands =installer_commands1298,41286
|
||||
committish =committish1340,43207
|
||||
committish =committish1342,43290
|
||||
committish =committish1344,43350
|
||||
download_grabpl_step_cmds =download_grabpl_step_cmds1347,43501
|
||||
clone_cmds =clone_cmds1353,43807
|
||||
def verify_gen_cue_step(edition):verify_gen_cue_step1387,45152
|
||||
deps =deps1388,45186
|
||||
def verify_gen_jsonnet_step(edition):verify_gen_jsonnet_step1402,45694
|
||||
deps =deps1403,45732
|
||||
def trigger_test_release():trigger_test_release1417,46236
|
||||
def artifacts_page_step():artifacts_page_step1451,47731
|
||||
def end_to_end_tests_deps():end_to_end_tests_deps1466,48058
|
||||
def compile_build_cmd(edition = "oss"):compile_build_cmd1476,48321
|
||||
dependencies =dependencies1477,48361
|
||||
dependencies =dependencies1479,48432
|
||||
def get_trigger_storybook(ver_mode):get_trigger_storybook1492,48780
|
||||
trigger_storybook =trigger_storybook1500,49031
|
||||
trigger_storybook =trigger_storybook1502,49088
|
||||
trigger_storybook =trigger_storybook1506,49168
|
||||
|
||||
vault.star,444
|
||||
pull_secret =pull_secret4,87
|
||||
github_token =github_token5,120
|
||||
drone_token =drone_token6,150
|
||||
prerelease_bucket =prerelease_bucket7,178
|
||||
gcp_upload_artifacts_key =gcp_upload_artifacts_key8,218
|
||||
azure_sp_app_id =azure_sp_app_id9,272
|
||||
azure_sp_app_pw =azure_sp_app_pw10,308
|
||||
azure_tenant =azure_tenant11,344
|
||||
def from_secret(secret):from_secret13,375
|
||||
def vault_secret(name, path, key):vault_secret18,451
|
||||
def secrets():secrets28,633
|
||||
|
||||
version.star,116
|
||||
ver_mode =ver_mode12,197
|
||||
trigger =trigger13,225
|
||||
def version_branch_pipelines():version_branch_pipelines15,268
|
@ -2,7 +2,6 @@
|
||||
This module provides functions for cronjob pipelines and steps used within.
|
||||
"""
|
||||
|
||||
load("scripts/drone/vault.star", "from_secret")
|
||||
load(
|
||||
"scripts/drone/steps/lib.star",
|
||||
"compile_build_cmd",
|
||||
@ -11,6 +10,7 @@ load(
|
||||
"scripts/drone/utils/images.star",
|
||||
"images",
|
||||
)
|
||||
load("scripts/drone/vault.star", "from_secret")
|
||||
|
||||
aquasec_trivy_image = "aquasec/trivy:0.21.0"
|
||||
|
||||
@ -160,7 +160,7 @@ def scan_docker_image_high_critical_vulnerabilities_step(docker_image):
|
||||
def slack_job_failed_step(channel, image):
|
||||
return {
|
||||
"name": "slack-notify-failure",
|
||||
"image": images["plugins_slack_image"],
|
||||
"image": images["plugins_slack"],
|
||||
"settings": {
|
||||
"webhook": from_secret("slack_webhook_backend"),
|
||||
"channel": channel,
|
||||
@ -174,7 +174,7 @@ def slack_job_failed_step(channel, image):
|
||||
def post_to_grafana_com_step():
|
||||
return {
|
||||
"name": "post-to-grafana-com",
|
||||
"image": images["publish_image"],
|
||||
"image": images["publish"],
|
||||
"environment": {
|
||||
"GRAFANA_COM_API_KEY": from_secret("grafana_api_key"),
|
||||
"GCP_KEY": from_secret("gcp_key"),
|
||||
|
@ -3,40 +3,18 @@ This module returns all the pipelines used in the event of pushes to the main br
|
||||
"""
|
||||
|
||||
load(
|
||||
"scripts/drone/utils/utils.star",
|
||||
"drone_change_template",
|
||||
"failure_template",
|
||||
"notify_pipeline",
|
||||
"scripts/drone/pipelines/build.star",
|
||||
"build_e2e",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/docs.star",
|
||||
"docs_pipelines",
|
||||
"trigger_docs_main",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/test_frontend.star",
|
||||
"test_frontend",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/test_backend.star",
|
||||
"test_backend",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/integration_tests.star",
|
||||
"integration_tests",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/build.star",
|
||||
"build_e2e",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/windows.star",
|
||||
"windows",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/trigger_downstream.star",
|
||||
"enterprise_downstream_pipeline",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/lint_backend.star",
|
||||
"lint_backend_pipeline",
|
||||
@ -45,6 +23,28 @@ load(
|
||||
"scripts/drone/pipelines/lint_frontend.star",
|
||||
"lint_frontend_pipeline",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/test_backend.star",
|
||||
"test_backend",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/test_frontend.star",
|
||||
"test_frontend",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/trigger_downstream.star",
|
||||
"enterprise_downstream_pipeline",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/windows.star",
|
||||
"windows",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/utils/utils.star",
|
||||
"drone_change_template",
|
||||
"failure_template",
|
||||
"notify_pipeline",
|
||||
)
|
||||
|
||||
ver_mode = "main"
|
||||
trigger = {
|
||||
|
@ -4,37 +4,21 @@ It also includes a function generating a PR trigger from a list of included and
|
||||
"""
|
||||
|
||||
load(
|
||||
"scripts/drone/pipelines/test_frontend.star",
|
||||
"test_frontend",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/test_backend.star",
|
||||
"test_backend",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/integration_tests.star",
|
||||
"integration_tests",
|
||||
"scripts/drone/pipelines/benchmarks.star",
|
||||
"integration_benchmarks",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/build.star",
|
||||
"build_e2e",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/verify_drone.star",
|
||||
"verify_drone",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/verify_starlark.star",
|
||||
"verify_starlark",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/docs.star",
|
||||
"docs_pipelines",
|
||||
"trigger_docs_pr",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/shellcheck.star",
|
||||
"shellcheck_pipeline",
|
||||
"scripts/drone/pipelines/integration_tests.star",
|
||||
"integration_tests",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/lint_backend.star",
|
||||
@ -45,8 +29,24 @@ load(
|
||||
"lint_frontend_pipeline",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/benchmarks.star",
|
||||
"integration_benchmarks",
|
||||
"scripts/drone/pipelines/shellcheck.star",
|
||||
"shellcheck_pipeline",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/test_backend.star",
|
||||
"test_backend",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/test_frontend.star",
|
||||
"test_frontend",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/verify_drone.star",
|
||||
"verify_drone",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/verify_starlark.star",
|
||||
"verify_starlark",
|
||||
)
|
||||
|
||||
ver_mode = "pr"
|
||||
|
@ -2,55 +2,35 @@
|
||||
This module returns all the pipelines used in the event of a release along with supporting functions.
|
||||
"""
|
||||
|
||||
load(
|
||||
"scripts/drone/steps/lib.star",
|
||||
"build_backend_step",
|
||||
"build_docker_images_step",
|
||||
"build_frontend_package_step",
|
||||
"build_frontend_step",
|
||||
"build_plugins_step",
|
||||
"build_storybook_step",
|
||||
"compile_build_cmd",
|
||||
"copy_packages_for_docker_step",
|
||||
"download_grabpl_step",
|
||||
"e2e_tests_artifacts",
|
||||
"e2e_tests_step",
|
||||
"get_windows_steps",
|
||||
"grafana_server_step",
|
||||
"identify_runner_step",
|
||||
"memcached_integration_tests_step",
|
||||
"mysql_integration_tests_step",
|
||||
"package_step",
|
||||
"postgres_integration_tests_step",
|
||||
"publish_grafanacom_step",
|
||||
"publish_linux_packages_step",
|
||||
"redis_integration_tests_step",
|
||||
"store_storybook_step",
|
||||
"trigger_oss",
|
||||
"upload_cdn_step",
|
||||
"upload_packages_step",
|
||||
"verify_gen_cue_step",
|
||||
"verify_gen_jsonnet_step",
|
||||
"wire_install_step",
|
||||
"yarn_install_step",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/services/services.star",
|
||||
"integration_test_services",
|
||||
"integration_test_services_volumes",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/steps/lib.star",
|
||||
"compile_build_cmd",
|
||||
"download_grabpl_step",
|
||||
"identify_runner_step",
|
||||
"memcached_integration_tests_steps",
|
||||
"mysql_integration_tests_steps",
|
||||
"postgres_integration_tests_steps",
|
||||
"publish_grafanacom_step",
|
||||
"publish_linux_packages_step",
|
||||
"redis_integration_tests_steps",
|
||||
"verify_gen_cue_step",
|
||||
"verify_gen_jsonnet_step",
|
||||
"wire_install_step",
|
||||
"yarn_install_step",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/utils/images.star",
|
||||
"images",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/utils/utils.star",
|
||||
"pipeline",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/test_frontend.star",
|
||||
"test_frontend",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/test_backend.star",
|
||||
"test_backend",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/vault.star",
|
||||
"from_secret",
|
||||
@ -59,16 +39,9 @@ load(
|
||||
"prerelease_bucket",
|
||||
"rgm_gcp_key_base64",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/utils/images.star",
|
||||
"images",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/whats_new_checker.star",
|
||||
"whats_new_checker_pipeline",
|
||||
)
|
||||
|
||||
ver_mode = "release"
|
||||
|
||||
release_trigger = {
|
||||
"event": {
|
||||
"exclude": [
|
||||
@ -85,25 +58,10 @@ release_trigger = {
|
||||
},
|
||||
}
|
||||
|
||||
def store_npm_packages_step():
|
||||
return {
|
||||
"name": "store-npm-packages",
|
||||
"image": images["build_image"],
|
||||
"depends_on": [
|
||||
"compile-build-cmd",
|
||||
"build-frontend-packages",
|
||||
],
|
||||
"environment": {
|
||||
"GCP_KEY": from_secret(gcp_grafanauploads_base64),
|
||||
"PRERELEASE_BUCKET": from_secret(prerelease_bucket),
|
||||
},
|
||||
"commands": ["./bin/build artifacts npm store --tag ${DRONE_TAG}"],
|
||||
}
|
||||
|
||||
def retrieve_npm_packages_step():
|
||||
return {
|
||||
"name": "retrieve-npm-packages",
|
||||
"image": images["publish_image"],
|
||||
"image": images["publish"],
|
||||
"depends_on": [
|
||||
"compile-build-cmd",
|
||||
"yarn-install",
|
||||
@ -119,7 +77,7 @@ def retrieve_npm_packages_step():
|
||||
def release_npm_packages_step():
|
||||
return {
|
||||
"name": "release-npm-packages",
|
||||
"image": images["build_image"],
|
||||
"image": images["go"],
|
||||
"depends_on": [
|
||||
"compile-build-cmd",
|
||||
"retrieve-npm-packages",
|
||||
@ -131,146 +89,10 @@ def release_npm_packages_step():
|
||||
"commands": ["./bin/build artifacts npm release --tag ${DRONE_TAG}"],
|
||||
}
|
||||
|
||||
def oss_pipelines(ver_mode = ver_mode, trigger = release_trigger):
|
||||
"""Generates all pipelines used for Grafana OSS.
|
||||
|
||||
Args:
|
||||
ver_mode: controls which steps are included in the pipeline.
|
||||
Defaults to 'release'.
|
||||
trigger: controls which events can trigger the pipeline execution.
|
||||
Defaults to tag events for tags with a 'v' prefix.
|
||||
|
||||
Returns:
|
||||
List of Drone pipelines.
|
||||
"""
|
||||
|
||||
environment = {"EDITION": "oss"}
|
||||
|
||||
services = integration_test_services()
|
||||
volumes = integration_test_services_volumes()
|
||||
|
||||
init_steps = [
|
||||
identify_runner_step(),
|
||||
download_grabpl_step(),
|
||||
verify_gen_cue_step(),
|
||||
wire_install_step(),
|
||||
yarn_install_step(),
|
||||
compile_build_cmd(),
|
||||
]
|
||||
|
||||
build_steps = [
|
||||
build_backend_step(ver_mode = ver_mode),
|
||||
build_frontend_step(ver_mode = ver_mode),
|
||||
build_frontend_package_step(ver_mode = ver_mode),
|
||||
build_plugins_step(ver_mode = ver_mode),
|
||||
package_step(ver_mode = ver_mode),
|
||||
copy_packages_for_docker_step(),
|
||||
build_docker_images_step(publish = True),
|
||||
build_docker_images_step(
|
||||
publish = True,
|
||||
ubuntu = True,
|
||||
),
|
||||
grafana_server_step(),
|
||||
e2e_tests_step("dashboards-suite", tries = 3),
|
||||
e2e_tests_step("smoke-tests-suite", tries = 3),
|
||||
e2e_tests_step("panels-suite", tries = 3),
|
||||
e2e_tests_step("various-suite", tries = 3),
|
||||
e2e_tests_artifacts(),
|
||||
build_storybook_step(ver_mode = ver_mode),
|
||||
]
|
||||
|
||||
publish_steps = []
|
||||
|
||||
if ver_mode in (
|
||||
"release",
|
||||
"release-branch",
|
||||
):
|
||||
publish_steps.extend(
|
||||
[
|
||||
upload_cdn_step(ver_mode = ver_mode, trigger = trigger_oss),
|
||||
upload_packages_step(
|
||||
ver_mode = ver_mode,
|
||||
trigger = trigger_oss,
|
||||
),
|
||||
],
|
||||
)
|
||||
|
||||
if ver_mode in ("release",):
|
||||
publish_steps.extend(
|
||||
[
|
||||
store_storybook_step(ver_mode = ver_mode),
|
||||
store_npm_packages_step(),
|
||||
],
|
||||
)
|
||||
|
||||
integration_test_steps = [
|
||||
postgres_integration_tests_step(),
|
||||
mysql_integration_tests_step("mysql57", "5.7"),
|
||||
mysql_integration_tests_step("mysql80", "8.0"),
|
||||
redis_integration_tests_step(),
|
||||
memcached_integration_tests_step(),
|
||||
]
|
||||
|
||||
pipelines = []
|
||||
|
||||
# We don't need to run integration tests at release time since they have
|
||||
# been run multiple times before:
|
||||
if ver_mode in ("release"):
|
||||
pipelines.append(whats_new_checker_pipeline(release_trigger))
|
||||
integration_test_steps = []
|
||||
volumes = []
|
||||
|
||||
windows_pipeline_dependencies = [
|
||||
"{}-build-e2e-publish".format(ver_mode),
|
||||
"{}-test-frontend".format(ver_mode),
|
||||
]
|
||||
pipelines.extend([
|
||||
pipeline(
|
||||
name = "{}-build-e2e-publish".format(ver_mode),
|
||||
trigger = trigger,
|
||||
services = [],
|
||||
steps = init_steps + build_steps + publish_steps,
|
||||
environment = environment,
|
||||
volumes = volumes,
|
||||
),
|
||||
test_frontend(trigger, ver_mode),
|
||||
test_backend(trigger, ver_mode),
|
||||
])
|
||||
|
||||
if ver_mode not in ("release"):
|
||||
pipelines.append(pipeline(
|
||||
name = "{}-integration-tests".format(ver_mode),
|
||||
trigger = trigger,
|
||||
services = services,
|
||||
steps = [
|
||||
download_grabpl_step(),
|
||||
identify_runner_step(),
|
||||
verify_gen_cue_step(),
|
||||
verify_gen_jsonnet_step(),
|
||||
wire_install_step(),
|
||||
] +
|
||||
integration_test_steps,
|
||||
environment = environment,
|
||||
volumes = volumes,
|
||||
))
|
||||
|
||||
windows_pipeline = pipeline(
|
||||
name = "{}-windows".format(ver_mode),
|
||||
trigger = trigger,
|
||||
steps = get_windows_steps(ver_mode = ver_mode),
|
||||
platform = "windows",
|
||||
depends_on = windows_pipeline_dependencies,
|
||||
environment = environment,
|
||||
)
|
||||
|
||||
pipelines.append(windows_pipeline)
|
||||
|
||||
return pipelines
|
||||
|
||||
def publish_artifacts_step():
|
||||
return {
|
||||
"name": "publish-artifacts",
|
||||
"image": images["publish_image"],
|
||||
"image": images["publish"],
|
||||
"environment": {
|
||||
"GCP_KEY": from_secret(gcp_grafanauploads_base64),
|
||||
"PRERELEASE_BUCKET": from_secret("prerelease_bucket"),
|
||||
@ -284,7 +106,7 @@ def publish_artifacts_step():
|
||||
def publish_static_assets_step():
|
||||
return {
|
||||
"name": "publish-static-assets",
|
||||
"image": images["publish_image"],
|
||||
"image": images["publish"],
|
||||
"environment": {
|
||||
"GCP_KEY": from_secret(gcp_grafanauploads_base64),
|
||||
"PRERELEASE_BUCKET": from_secret("prerelease_bucket"),
|
||||
@ -299,7 +121,7 @@ def publish_static_assets_step():
|
||||
def publish_storybook_step():
|
||||
return {
|
||||
"name": "publish-storybook",
|
||||
"image": images["publish_image"],
|
||||
"image": images["publish"],
|
||||
"environment": {
|
||||
"GCP_KEY": from_secret(gcp_grafanauploads_base64),
|
||||
"PRERELEASE_BUCKET": from_secret("prerelease_bucket"),
|
||||
@ -411,13 +233,11 @@ def integration_test_pipelines():
|
||||
}
|
||||
pipelines = []
|
||||
volumes = integration_test_services_volumes()
|
||||
integration_test_steps = [
|
||||
postgres_integration_tests_step(),
|
||||
mysql_integration_tests_step("mysql57", "5.7"),
|
||||
mysql_integration_tests_step("mysql80", "8.0"),
|
||||
redis_integration_tests_step(),
|
||||
memcached_integration_tests_step(),
|
||||
]
|
||||
integration_test_steps = postgres_integration_tests_steps() + \
|
||||
mysql_integration_tests_steps("mysql57", "5.7") + \
|
||||
mysql_integration_tests_steps("mysql80", "8.0") + \
|
||||
redis_integration_tests_steps() + \
|
||||
memcached_integration_tests_steps()
|
||||
|
||||
pipelines.append(pipeline(
|
||||
name = "integration-tests",
|
||||
@ -456,7 +276,7 @@ def verify_release_pipeline(
|
||||
step = {
|
||||
"name": "gsutil-stat",
|
||||
"depends_on": ["clone"],
|
||||
"image": images["cloudsdk_image"],
|
||||
"image": images["cloudsdk"],
|
||||
"environment": {
|
||||
"BUCKET": bucket,
|
||||
"GCP_KEY": gcp_key,
|
||||
|
@ -2,6 +2,11 @@
|
||||
This module returns the pipeline used for integration benchmarks.
|
||||
"""
|
||||
|
||||
load(
|
||||
"scripts/drone/services/services.star",
|
||||
"integration_test_services",
|
||||
"integration_test_services_volumes",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/steps/lib.star",
|
||||
"compile_build_cmd",
|
||||
@ -11,11 +16,6 @@ load(
|
||||
"verify_gen_jsonnet_step",
|
||||
"wire_install_step",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/services/services.star",
|
||||
"integration_test_services",
|
||||
"integration_test_services_volumes",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/utils/utils.star",
|
||||
"pipeline",
|
||||
@ -52,22 +52,20 @@ def integration_benchmarks(prefix):
|
||||
wire_install_step(),
|
||||
]
|
||||
|
||||
benchmark_steps = [
|
||||
integration_benchmarks_step("sqlite"),
|
||||
integration_benchmarks_step("postgres", {
|
||||
"PGPASSWORD": "grafanatest",
|
||||
"GRAFANA_TEST_DB": "postgres",
|
||||
"POSTGRES_HOST": "postgres",
|
||||
}),
|
||||
integration_benchmarks_step("mysql-5.7", {
|
||||
"GRAFANA_TEST_DB": "mysql",
|
||||
"MYSQL_HOST": "mysql57",
|
||||
}),
|
||||
integration_benchmarks_step("mysql-8.0", {
|
||||
"GRAFANA_TEST_DB": "mysql",
|
||||
"MYSQL_HOST": "mysql80",
|
||||
}),
|
||||
]
|
||||
benchmark_steps = integration_benchmarks_step("sqlite") + \
|
||||
integration_benchmarks_step("postgres", {
|
||||
"PGPASSWORD": "grafanatest",
|
||||
"GRAFANA_TEST_DB": "postgres",
|
||||
"POSTGRES_HOST": "postgres",
|
||||
}) + \
|
||||
integration_benchmarks_step("mysql-5.7", {
|
||||
"GRAFANA_TEST_DB": "mysql",
|
||||
"MYSQL_HOST": "mysql57",
|
||||
}) + \
|
||||
integration_benchmarks_step("mysql-8.0", {
|
||||
"GRAFANA_TEST_DB": "mysql",
|
||||
"MYSQL_HOST": "mysql80",
|
||||
})
|
||||
|
||||
return pipeline(
|
||||
name = "{}-integration-benchmarks".format(prefix),
|
||||
|
@ -2,15 +2,10 @@
|
||||
|
||||
load(
|
||||
"scripts/drone/steps/lib.star",
|
||||
"build_backend_step",
|
||||
"build_docker_images_step",
|
||||
"build_frontend_package_step",
|
||||
"build_frontend_step",
|
||||
"build_plugins_step",
|
||||
"build_storybook_step",
|
||||
"cloud_plugins_e2e_tests_step",
|
||||
"compile_build_cmd",
|
||||
"copy_packages_for_docker_step",
|
||||
"download_grabpl_step",
|
||||
"e2e_tests_artifacts",
|
||||
"e2e_tests_step",
|
||||
@ -18,7 +13,6 @@ load(
|
||||
"frontend_metrics_step",
|
||||
"grafana_server_step",
|
||||
"identify_runner_step",
|
||||
"package_step",
|
||||
"publish_images_step",
|
||||
"release_canary_npm_packages_step",
|
||||
"store_storybook_step",
|
||||
@ -32,6 +26,15 @@ load(
|
||||
"wire_install_step",
|
||||
"yarn_install_step",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/steps/rgm.star",
|
||||
"rgm_build_docker_step",
|
||||
"rgm_package_step",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/utils/images.star",
|
||||
"images",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/utils/utils.star",
|
||||
"pipeline",
|
||||
@ -72,11 +75,8 @@ def build_e2e(trigger, ver_mode):
|
||||
|
||||
build_steps.extend(
|
||||
[
|
||||
build_backend_step(ver_mode = ver_mode),
|
||||
build_frontend_step(ver_mode = ver_mode),
|
||||
build_frontend_package_step(ver_mode = ver_mode),
|
||||
build_plugins_step(ver_mode = ver_mode),
|
||||
package_step(ver_mode = ver_mode),
|
||||
build_frontend_package_step(),
|
||||
rgm_package_step(distros = "linux/amd64,linux/arm64", file = "packages.txt"),
|
||||
grafana_server_step(),
|
||||
e2e_tests_step("dashboards-suite"),
|
||||
e2e_tests_step("smoke-tests-suite"),
|
||||
@ -89,7 +89,6 @@ def build_e2e(trigger, ver_mode):
|
||||
),
|
||||
e2e_tests_artifacts(),
|
||||
build_storybook_step(ver_mode = ver_mode),
|
||||
copy_packages_for_docker_step(),
|
||||
test_a11y_frontend_step(ver_mode = ver_mode),
|
||||
],
|
||||
)
|
||||
@ -99,13 +98,7 @@ def build_e2e(trigger, ver_mode):
|
||||
[
|
||||
store_storybook_step(trigger = trigger_oss, ver_mode = ver_mode),
|
||||
frontend_metrics_step(trigger = trigger_oss),
|
||||
build_docker_images_step(
|
||||
publish = False,
|
||||
),
|
||||
build_docker_images_step(
|
||||
publish = False,
|
||||
ubuntu = True,
|
||||
),
|
||||
rgm_build_docker_step("packages.txt", images["ubuntu"], images["alpine"]),
|
||||
publish_images_step(
|
||||
docker_repo = "grafana",
|
||||
trigger = trigger_oss,
|
||||
@ -130,16 +123,12 @@ def build_e2e(trigger, ver_mode):
|
||||
elif ver_mode == "pr":
|
||||
build_steps.extend(
|
||||
[
|
||||
build_docker_images_step(
|
||||
archs = [
|
||||
"amd64",
|
||||
],
|
||||
),
|
||||
build_docker_images_step(
|
||||
archs = [
|
||||
"amd64",
|
||||
],
|
||||
ubuntu = True,
|
||||
rgm_build_docker_step(
|
||||
"packages.txt",
|
||||
images["ubuntu"],
|
||||
images["alpine"],
|
||||
tag_format = "{{ .version_base }}-{{ .buildID }}-{{ .arch }}",
|
||||
ubuntu_tag_format = "{{ .version_base }}-{{ .buildID }}-ubuntu-{{ .arch }}",
|
||||
),
|
||||
publish_images_step(
|
||||
docker_repo = "grafana",
|
||||
|
@ -3,21 +3,21 @@ This module contains steps and pipelines relating to creating CI Docker images.
|
||||
"""
|
||||
|
||||
load(
|
||||
"scripts/drone/utils/utils.star",
|
||||
"pipeline",
|
||||
"scripts/drone/utils/images.star",
|
||||
"images",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/vault.star",
|
||||
"from_secret",
|
||||
"gcp_download_build_container_assets_key",
|
||||
"scripts/drone/utils/utils.star",
|
||||
"pipeline",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/utils/windows_images.star",
|
||||
"windows_images",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/utils/images.star",
|
||||
"images",
|
||||
"scripts/drone/vault.star",
|
||||
"from_secret",
|
||||
"gcp_download_build_container_assets_key",
|
||||
)
|
||||
|
||||
def publish_ci_windows_test_image_pipeline():
|
||||
@ -32,7 +32,7 @@ def publish_ci_windows_test_image_pipeline():
|
||||
steps = [
|
||||
{
|
||||
"name": "clone",
|
||||
"image": windows_images["wix_image"],
|
||||
"image": windows_images["wix"],
|
||||
"environment": {
|
||||
"GITHUB_TOKEN": from_secret("github_token"),
|
||||
},
|
||||
@ -43,7 +43,7 @@ def publish_ci_windows_test_image_pipeline():
|
||||
},
|
||||
{
|
||||
"name": "build-and-publish",
|
||||
"image": windows_images["windows_server_core_image"],
|
||||
"image": windows_images["windows_server_core"],
|
||||
"environment": {
|
||||
"DOCKER_USERNAME": from_secret("docker_username"),
|
||||
"DOCKER_PASSWORD": from_secret("docker_password"),
|
||||
@ -81,14 +81,14 @@ def publish_ci_build_container_image_pipeline():
|
||||
steps = [
|
||||
{
|
||||
"name": "validate-version",
|
||||
"image": images["alpine_image"],
|
||||
"image": images["alpine"],
|
||||
"commands": [
|
||||
"if [ -z \"${BUILD_CONTAINER_VERSION}\" ]; then echo Missing BUILD_CONTAINER_VERSION; false; fi",
|
||||
],
|
||||
},
|
||||
{
|
||||
"name": "download-macos-sdk",
|
||||
"image": images["cloudsdk_image"],
|
||||
"image": images["cloudsdk"],
|
||||
"environment": {
|
||||
"GCP_KEY": from_secret(gcp_download_build_container_assets_key),
|
||||
},
|
||||
@ -100,7 +100,7 @@ def publish_ci_build_container_image_pipeline():
|
||||
},
|
||||
{
|
||||
"name": "build-and-publish", # Consider splitting the build and the upload task.
|
||||
"image": images["cloudsdk_image"],
|
||||
"image": images["cloudsdk"],
|
||||
"volumes": [{"name": "docker", "path": "/var/run/docker.sock"}],
|
||||
"environment": {
|
||||
"DOCKER_USERNAME": from_secret("docker_username"),
|
||||
|
@ -50,7 +50,7 @@ def docs_pipelines(ver_mode, trigger):
|
||||
def lint_docs():
|
||||
return {
|
||||
"name": "lint-docs",
|
||||
"image": images["build_image"],
|
||||
"image": images["node"],
|
||||
"depends_on": [
|
||||
"yarn-install",
|
||||
],
|
||||
|
@ -2,25 +2,25 @@
|
||||
This module returns the pipeline used for integration tests.
|
||||
"""
|
||||
|
||||
load(
|
||||
"scripts/drone/services/services.star",
|
||||
"integration_test_services",
|
||||
"integration_test_services_volumes",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/steps/lib.star",
|
||||
"compile_build_cmd",
|
||||
"download_grabpl_step",
|
||||
"enterprise_setup_step",
|
||||
"identify_runner_step",
|
||||
"memcached_integration_tests_step",
|
||||
"mysql_integration_tests_step",
|
||||
"postgres_integration_tests_step",
|
||||
"redis_integration_tests_step",
|
||||
"memcached_integration_tests_steps",
|
||||
"mysql_integration_tests_steps",
|
||||
"postgres_integration_tests_steps",
|
||||
"redis_integration_tests_steps",
|
||||
"verify_gen_cue_step",
|
||||
"verify_gen_jsonnet_step",
|
||||
"wire_install_step",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/services/services.star",
|
||||
"integration_test_services",
|
||||
"integration_test_services_volumes",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/utils/utils.star",
|
||||
"pipeline",
|
||||
@ -60,13 +60,12 @@ def integration_tests(trigger, prefix, ver_mode = "pr"):
|
||||
wire_install_step(),
|
||||
]
|
||||
|
||||
test_steps = [
|
||||
postgres_integration_tests_step(),
|
||||
mysql_integration_tests_step("mysql57", "5.7"),
|
||||
mysql_integration_tests_step("mysql80", "8.0"),
|
||||
redis_integration_tests_step(),
|
||||
memcached_integration_tests_step(),
|
||||
]
|
||||
# test_steps = [a, b] + [c, d] + [e, f]...
|
||||
test_steps = postgres_integration_tests_steps() + \
|
||||
mysql_integration_tests_steps("mysql57", "5.7") + \
|
||||
mysql_integration_tests_steps("mysql80", "8.0") + \
|
||||
redis_integration_tests_steps() + \
|
||||
memcached_integration_tests_steps()
|
||||
|
||||
return pipeline(
|
||||
name = "{}-integration-tests".format(prefix),
|
||||
|
@ -3,14 +3,14 @@ This module returns a Drone step and pipeline for linting with shellcheck.
|
||||
"""
|
||||
|
||||
load("scripts/drone/steps/lib.star", "compile_build_cmd")
|
||||
load(
|
||||
"scripts/drone/utils/utils.star",
|
||||
"pipeline",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/utils/images.star",
|
||||
"images",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/utils/utils.star",
|
||||
"pipeline",
|
||||
)
|
||||
|
||||
trigger = {
|
||||
"event": [
|
||||
@ -29,12 +29,9 @@ trigger = {
|
||||
def shellcheck_step():
|
||||
return {
|
||||
"name": "shellcheck",
|
||||
"image": images["build_image"],
|
||||
"depends_on": [
|
||||
"compile-build-cmd",
|
||||
],
|
||||
"image": images["shellcheck"],
|
||||
"commands": [
|
||||
"./bin/build shellcheck",
|
||||
"shellcheck -e SC1071 -e SC2162 scripts/**/*.sh",
|
||||
],
|
||||
}
|
||||
|
||||
|
@ -4,7 +4,6 @@ This module returns the pipeline used for testing backend code.
|
||||
|
||||
load(
|
||||
"scripts/drone/steps/lib.star",
|
||||
"compile_build_cmd",
|
||||
"enterprise_setup_step",
|
||||
"identify_runner_step",
|
||||
"test_backend_integration_step",
|
||||
@ -41,7 +40,6 @@ def test_backend(trigger, ver_mode):
|
||||
|
||||
steps += [
|
||||
identify_runner_step(),
|
||||
compile_build_cmd(),
|
||||
verify_step,
|
||||
verify_jsonnet_step,
|
||||
wire_install_step(),
|
||||
|
@ -5,7 +5,6 @@ This module returns the pipeline used for testing backend code.
|
||||
load(
|
||||
"scripts/drone/steps/lib.star",
|
||||
"betterer_frontend_step",
|
||||
"download_grabpl_step",
|
||||
"enterprise_setup_step",
|
||||
"identify_runner_step",
|
||||
"test_frontend_step",
|
||||
@ -30,7 +29,6 @@ def test_frontend(trigger, ver_mode):
|
||||
|
||||
steps = [
|
||||
identify_runner_step(),
|
||||
download_grabpl_step(),
|
||||
yarn_install_step(),
|
||||
betterer_frontend_step(),
|
||||
]
|
||||
|
@ -2,14 +2,14 @@
|
||||
This module contains logic for checking if the package.json whats new url matches with the in-flight tag.
|
||||
"""
|
||||
|
||||
load(
|
||||
"scripts/drone/utils/images.star",
|
||||
"images",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/steps/lib.star",
|
||||
"compile_build_cmd",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/utils/images.star",
|
||||
"images",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/utils/utils.star",
|
||||
"pipeline",
|
||||
@ -18,7 +18,7 @@ load(
|
||||
def whats_new_checker_step():
|
||||
return {
|
||||
"name": "whats-new-checker",
|
||||
"image": images["go_image"],
|
||||
"image": images["go"],
|
||||
"depends_on": [
|
||||
"compile-build-cmd",
|
||||
],
|
||||
|
@ -3,15 +3,15 @@ This module returns the pipeline used for building Grafana on Windows.
|
||||
"""
|
||||
|
||||
load(
|
||||
"scripts/drone/utils/utils.star",
|
||||
"pipeline",
|
||||
"scripts/drone/steps/lib_windows.star",
|
||||
"clone_step_windows",
|
||||
"get_windows_steps",
|
||||
"test_backend_step_windows",
|
||||
"wire_install_step_windows",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/steps/lib.star",
|
||||
"get_windows_steps",
|
||||
"windows_clone_step",
|
||||
"windows_test_backend_step",
|
||||
"windows_wire_install_step",
|
||||
"scripts/drone/utils/utils.star",
|
||||
"pipeline",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/utils/windows_images.star",
|
||||
@ -30,19 +30,19 @@ def windows_test_backend(trigger, edition, ver_mode):
|
||||
"""
|
||||
environment = {"EDITION": edition}
|
||||
steps = [
|
||||
windows_clone_step(),
|
||||
clone_step_windows(),
|
||||
]
|
||||
|
||||
steps.extend([{
|
||||
"name": "windows-init",
|
||||
"image": windows_images["windows_go_image"],
|
||||
"image": windows_images["go"],
|
||||
"depends_on": ["clone"],
|
||||
"commands": [],
|
||||
}])
|
||||
|
||||
steps.extend([
|
||||
windows_wire_install_step(edition),
|
||||
windows_test_backend_step(),
|
||||
wire_install_step_windows(edition),
|
||||
test_backend_step_windows(),
|
||||
])
|
||||
pl = pipeline(
|
||||
name = "{}-test-backend-windows".format(ver_mode),
|
||||
|
@ -5,7 +5,23 @@ rgm uses 'github.com/grafana/grafana-build' to build Grafana on the following ev
|
||||
"""
|
||||
|
||||
load(
|
||||
"scripts/drone/steps/lib.star",
|
||||
"scripts/drone/events/release.star",
|
||||
"verify_release_pipeline",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/test_backend.star",
|
||||
"test_backend",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/test_frontend.star",
|
||||
"test_frontend",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/whats_new_checker.star",
|
||||
"whats_new_checker_pipeline",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/steps/lib_windows.star",
|
||||
"get_windows_steps",
|
||||
)
|
||||
load(
|
||||
@ -14,20 +30,8 @@ load(
|
||||
"pipeline",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/events/release.star",
|
||||
"verify_release_pipeline",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/test_frontend.star",
|
||||
"test_frontend",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/test_backend.star",
|
||||
"test_backend",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/pipelines/whats_new_checker.star",
|
||||
"whats_new_checker_pipeline",
|
||||
"scripts/drone/variables.star",
|
||||
"golang_version",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/vault.star",
|
||||
@ -38,15 +42,22 @@ load(
|
||||
"rgm_github_token",
|
||||
)
|
||||
|
||||
rgm_env_secrets = {
|
||||
"GCP_KEY_BASE64": from_secret(rgm_gcp_key_base64),
|
||||
"DESTINATION": from_secret(rgm_destination),
|
||||
"GITHUB_TOKEN": from_secret(rgm_github_token),
|
||||
"_EXPERIMENTAL_DAGGER_CLOUD_TOKEN": from_secret(rgm_dagger_token),
|
||||
"GPG_PRIVATE_KEY": from_secret("packages_gpg_private_key"),
|
||||
"GPG_PUBLIC_KEY": from_secret("packages_gpg_public_key"),
|
||||
"GPG_PASSPHRASE": from_secret("packages_gpg_passphrase"),
|
||||
}
|
||||
def rgm_env_secrets(env):
|
||||
"""Adds the rgm secret ENV variables to the given env arg
|
||||
|
||||
Args:
|
||||
env: A map of environment varables. This function will adds the necessary secrets to it (and potentially overwrite them).
|
||||
Returns:
|
||||
Drone step.
|
||||
"""
|
||||
env["GCP_KEY_BASE64"] = from_secret(rgm_gcp_key_base64)
|
||||
env["DESTINATION"] = from_secret(rgm_destination)
|
||||
env["GITHUB_TOKEN"] = from_secret(rgm_github_token)
|
||||
env["_EXPERIMENTAL_DAGGER_CLOUD_TOKEN"] = from_secret(rgm_dagger_token)
|
||||
env["GPG_PRIVATE_KEY"] = from_secret("packages_gpg_private_key")
|
||||
env["GPG_PUBLIC_KEY"] = from_secret("packages_gpg_public_key")
|
||||
env["GPG_PASSPHRASE"] = from_secret("packages_gpg_passphrase")
|
||||
return env
|
||||
|
||||
docs_paths = {
|
||||
"exclude": [
|
||||
@ -73,7 +84,20 @@ tag_trigger = {
|
||||
},
|
||||
}
|
||||
|
||||
version_branch_trigger = {"ref": ["refs/heads/v[0-9]*"]}
|
||||
|
||||
def rgm_build(script = "drone_publish_main.sh", canFail = True):
|
||||
"""Returns a pipeline that does a full build & package of Grafana.
|
||||
|
||||
Args:
|
||||
script: The script in the container to run.
|
||||
canFail: if true, then this pipeline can fail while the entire build will still succeed.
|
||||
Returns:
|
||||
Drone step.
|
||||
"""
|
||||
env = {
|
||||
"GO_VERSION": golang_version,
|
||||
}
|
||||
rgm_build_step = {
|
||||
"name": "rgm-build",
|
||||
"image": "grafana/grafana-build:main",
|
||||
@ -81,11 +105,12 @@ def rgm_build(script = "drone_publish_main.sh", canFail = True):
|
||||
"export GRAFANA_DIR=$$(pwd)",
|
||||
"cd /src && ./scripts/{}".format(script),
|
||||
],
|
||||
"environment": rgm_env_secrets,
|
||||
"environment": rgm_env_secrets(env),
|
||||
# The docker socket is a requirement for running dagger programs
|
||||
# In the future we should find a way to use dagger without mounting the docker socket.
|
||||
"volumes": [{"name": "docker", "path": "/var/run/docker.sock"}],
|
||||
}
|
||||
|
||||
if canFail:
|
||||
rgm_build_step["failure"] = "ignore"
|
||||
|
||||
@ -120,7 +145,7 @@ def rgm_tag():
|
||||
depends_on = ["release-test-backend", "release-test-frontend"],
|
||||
)
|
||||
|
||||
def rgm_windows():
|
||||
def rgm_tag_windows():
|
||||
return pipeline(
|
||||
name = "rgm-tag-prerelease-windows",
|
||||
trigger = tag_trigger,
|
||||
@ -134,14 +159,23 @@ def rgm_windows():
|
||||
platform = "windows",
|
||||
)
|
||||
|
||||
def rgm_version_branch():
|
||||
return pipeline(
|
||||
name = "rgm-version-branch-prerelease",
|
||||
trigger = version_branch_trigger,
|
||||
steps = rgm_build(script = "drone_publish_tag_grafana.sh", canFail = False),
|
||||
depends_on = ["release-test-backend", "release-test-frontend"],
|
||||
)
|
||||
|
||||
def rgm():
|
||||
return [
|
||||
whats_new_checker_pipeline(tag_trigger),
|
||||
test_frontend(tag_trigger, "release"),
|
||||
test_backend(tag_trigger, "release"),
|
||||
rgm_main(),
|
||||
rgm_tag(),
|
||||
rgm_windows(),
|
||||
rgm_main(), # Runs a package / build process (with some distros) when commits are merged to main
|
||||
rgm_tag(), # Runs a package / build process (with all distros) when a tag is made
|
||||
rgm_tag_windows(),
|
||||
rgm_version_branch(), # Runs a package / build proces (with all distros) when a commit lands on a version branch
|
||||
verify_release_pipeline(
|
||||
trigger = tag_trigger,
|
||||
name = "rgm-tag-verify-prerelease-assets",
|
||||
@ -151,4 +185,12 @@ def rgm():
|
||||
"rgm-tag-prerelease-windows",
|
||||
],
|
||||
),
|
||||
verify_release_pipeline(
|
||||
trigger = version_branch_trigger,
|
||||
name = "rgm-prerelease-verify-prerelease-assets",
|
||||
bucket = "grafana-prerelease",
|
||||
depends_on = [
|
||||
"rgm-version-branch-prerelease",
|
||||
],
|
||||
),
|
||||
]
|
||||
|
@ -18,7 +18,7 @@ def integration_test_services():
|
||||
services = [
|
||||
{
|
||||
"name": "postgres",
|
||||
"image": images["postgres_alpine_image"],
|
||||
"image": images["postgres_alpine"],
|
||||
"environment": {
|
||||
"POSTGRES_USER": "grafanatest",
|
||||
"POSTGRES_PASSWORD": "grafanatest",
|
||||
@ -31,7 +31,7 @@ def integration_test_services():
|
||||
},
|
||||
{
|
||||
"name": "mysql57",
|
||||
"image": images["mysql5_image"],
|
||||
"image": images["mysql5"],
|
||||
"environment": {
|
||||
"MYSQL_ROOT_PASSWORD": "rootpass",
|
||||
"MYSQL_DATABASE": "grafana_tests",
|
||||
@ -43,7 +43,7 @@ def integration_test_services():
|
||||
},
|
||||
{
|
||||
"name": "mysql80",
|
||||
"image": images["mysql8_image"],
|
||||
"image": images["mysql8"],
|
||||
"environment": {
|
||||
"MYSQL_ROOT_PASSWORD": "rootpass",
|
||||
"MYSQL_DATABASE": "grafana_tests",
|
||||
@ -55,12 +55,12 @@ def integration_test_services():
|
||||
},
|
||||
{
|
||||
"name": "redis",
|
||||
"image": images["redis_alpine_image"],
|
||||
"image": images["redis_alpine"],
|
||||
"environment": {},
|
||||
},
|
||||
{
|
||||
"name": "memcached",
|
||||
"image": images["memcached_alpine_image"],
|
||||
"image": images["memcached_alpine"],
|
||||
"environment": {},
|
||||
},
|
||||
]
|
||||
@ -70,7 +70,7 @@ def integration_test_services():
|
||||
def ldap_service():
|
||||
return {
|
||||
"name": "ldap",
|
||||
"image": images["openldap_image"],
|
||||
"image": images["openldap"],
|
||||
"environment": {
|
||||
"LDAP_ADMIN_PASSWORD": "grafana",
|
||||
"LDAP_DOMAIN": "grafana.org",
|
||||
|
File diff suppressed because it is too large
Load Diff
187
scripts/drone/steps/lib_windows.star
Normal file
187
scripts/drone/steps/lib_windows.star
Normal file
@ -0,0 +1,187 @@
|
||||
"""
|
||||
This module is a library of Drone steps that exclusively run on windows machines.
|
||||
"""
|
||||
|
||||
load(
|
||||
"scripts/drone/utils/windows_images.star",
|
||||
"windows_images",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/variables.star",
|
||||
"grabpl_version",
|
||||
)
|
||||
load(
|
||||
"scripts/drone/vault.star",
|
||||
"from_secret",
|
||||
"gcp_grafanauploads_base64",
|
||||
"prerelease_bucket",
|
||||
)
|
||||
|
||||
def identify_runner_step_windows():
|
||||
return {
|
||||
"name": "identify-runner",
|
||||
"image": windows_images["1809"],
|
||||
"commands": [
|
||||
"echo $env:DRONE_RUNNER_NAME",
|
||||
],
|
||||
}
|
||||
|
||||
def get_windows_steps(ver_mode, bucket = "%PRERELEASE_BUCKET%"):
|
||||
"""Generate the list of Windows steps.
|
||||
|
||||
Args:
|
||||
ver_mode: used to differentiate steps for different version modes.
|
||||
bucket: used to override prerelease bucket.
|
||||
|
||||
Returns:
|
||||
List of Drone steps.
|
||||
"""
|
||||
steps = [
|
||||
identify_runner_step_windows(),
|
||||
]
|
||||
|
||||
init_cmds = [
|
||||
'$$ProgressPreference = "SilentlyContinue"',
|
||||
"Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/{}/windows/grabpl.exe -OutFile grabpl.exe".format(
|
||||
grabpl_version,
|
||||
),
|
||||
]
|
||||
|
||||
steps.extend(
|
||||
[
|
||||
{
|
||||
"name": "windows-init",
|
||||
"image": windows_images["wix"],
|
||||
"commands": init_cmds,
|
||||
},
|
||||
],
|
||||
)
|
||||
|
||||
if ver_mode in (
|
||||
"release",
|
||||
"release-branch",
|
||||
):
|
||||
gcp_bucket = "{}/artifacts/downloads".format(bucket)
|
||||
if ver_mode == "release":
|
||||
ver_part = "${DRONE_TAG}"
|
||||
dir = "release"
|
||||
else:
|
||||
dir = "main"
|
||||
gcp_bucket = "grafana-downloads"
|
||||
build_no = "DRONE_BUILD_NUMBER"
|
||||
ver_part = "--build-id $$env:{}".format(build_no)
|
||||
installer_commands = [
|
||||
"$$gcpKey = $$env:GCP_KEY",
|
||||
"[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($$gcpKey)) > gcpkey.json",
|
||||
# gcloud fails to read the file unless converted with dos2unix
|
||||
"dos2unix gcpkey.json",
|
||||
"gcloud auth activate-service-account --key-file=gcpkey.json",
|
||||
"rm gcpkey.json",
|
||||
"cp C:\\App\\nssm-2.24.zip .",
|
||||
]
|
||||
|
||||
if ver_mode in ("release",):
|
||||
version = "${DRONE_TAG:1}"
|
||||
installer_commands.extend(
|
||||
[
|
||||
".\\grabpl.exe windows-installer --target {} --edition oss {}".format(
|
||||
"gs://{}/{}/oss/{}/grafana-{}.windows-amd64.zip".format(gcp_bucket, ver_part, ver_mode, version),
|
||||
ver_part,
|
||||
),
|
||||
'$$fname = ((Get-Childitem grafana*.msi -name) -split "`n")[0]',
|
||||
],
|
||||
)
|
||||
if ver_mode == "main":
|
||||
installer_commands.extend(
|
||||
[
|
||||
"gsutil cp $$fname gs://{}/oss/{}/".format(gcp_bucket, dir),
|
||||
'gsutil cp "$$fname.sha256" gs://{}/oss/{}/'.format(
|
||||
gcp_bucket,
|
||||
dir,
|
||||
),
|
||||
],
|
||||
)
|
||||
else:
|
||||
installer_commands.extend(
|
||||
[
|
||||
"gsutil cp $$fname gs://{}/{}/oss/{}/".format(
|
||||
gcp_bucket,
|
||||
ver_part,
|
||||
dir,
|
||||
),
|
||||
'gsutil cp "$$fname.sha256" gs://{}/{}/oss/{}/'.format(
|
||||
gcp_bucket,
|
||||
ver_part,
|
||||
dir,
|
||||
),
|
||||
],
|
||||
)
|
||||
steps.append(
|
||||
{
|
||||
"name": "build-windows-installer",
|
||||
"image": windows_images["wix"],
|
||||
"depends_on": [
|
||||
"windows-init",
|
||||
],
|
||||
"environment": {
|
||||
"GCP_KEY": from_secret(gcp_grafanauploads_base64),
|
||||
"PRERELEASE_BUCKET": from_secret(prerelease_bucket),
|
||||
"GITHUB_TOKEN": from_secret("github_token"),
|
||||
},
|
||||
"commands": installer_commands,
|
||||
},
|
||||
)
|
||||
|
||||
return steps
|
||||
|
||||
def download_grabpl_step_windows():
|
||||
return {
|
||||
"name": "grabpl",
|
||||
"image": windows_images["wix"],
|
||||
"commands": [
|
||||
'$$ProgressPreference = "SilentlyContinue"',
|
||||
"Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/{}/windows/grabpl.exe -OutFile grabpl.exe".format(
|
||||
grabpl_version,
|
||||
),
|
||||
],
|
||||
}
|
||||
|
||||
def test_backend_step_windows():
|
||||
# TODO: This is mostly a duplicate of "test_backend_step" in lib.star; but this file can't import that one,
|
||||
# otherwise it creates an import cycle.
|
||||
return {
|
||||
"name": "test-backend",
|
||||
"image": windows_images["go"],
|
||||
"depends_on": [
|
||||
"wire-install",
|
||||
],
|
||||
"commands": [
|
||||
"go test -tags requires_buildifer -short -covermode=atomic -timeout=5m ./pkg/...",
|
||||
],
|
||||
}
|
||||
|
||||
def clone_step_windows():
|
||||
return {
|
||||
"name": "clone",
|
||||
"image": windows_images["wix"],
|
||||
"environment": {
|
||||
"GITHUB_TOKEN": from_secret("github_token"),
|
||||
},
|
||||
"commands": [
|
||||
'git clone "https://$$env:GITHUB_TOKEN@github.com/$$env:DRONE_REPO.git" .',
|
||||
"git checkout -f $$env:DRONE_COMMIT",
|
||||
],
|
||||
}
|
||||
|
||||
def wire_install_step_windows(edition):
|
||||
return {
|
||||
"name": "wire-install",
|
||||
"image": windows_images["go"],
|
||||
"commands": [
|
||||
"go install github.com/google/wire/cmd/wire@v0.5.0",
|
||||
"wire gen -tags {} ./pkg/server".format(edition),
|
||||
],
|
||||
"depends_on": [
|
||||
"windows-init",
|
||||
],
|
||||
}
|
49
scripts/drone/steps/rgm.star
Normal file
49
scripts/drone/steps/rgm.star
Normal file
@ -0,0 +1,49 @@
|
||||
"""
|
||||
Individual steps that use 'grafana-build' to replace existing individual steps.
|
||||
These aren't used in releases.
|
||||
"""
|
||||
|
||||
# rgm_package_step will create a tar.gz for use in e2e tests or other PR testing related activities..
|
||||
def rgm_package_step(distros = "linux/amd64,linux/arm64", file = "packages.txt"):
|
||||
return {
|
||||
"name": "rgm-package",
|
||||
"image": "grafana/grafana-build:main",
|
||||
"depends_on": ["yarn-install"],
|
||||
"commands": [
|
||||
"/src/grafana-build package --distro={} ".format(distros) +
|
||||
"--yarn-cache=$$YARN_CACHE_FOLDER " +
|
||||
"--build-id=$$DRONE_BUILD_NUMBER " +
|
||||
"--grafana-dir=$$PWD > {}".format(file),
|
||||
],
|
||||
"volumes": [{"name": "docker", "path": "/var/run/docker.sock"}],
|
||||
}
|
||||
|
||||
# rgm_build_backend will create compile the grafana backend for various platforms. It's preferred to use
|
||||
# 'rgm_package_step' if you creating a "usable" artifact. This should really only be used to verify that the code is
|
||||
# compilable.
|
||||
def rgm_build_backend_step(distros = "linux/amd64,linux/arm64"):
|
||||
return {
|
||||
"name": "rgm-package",
|
||||
"image": "grafana/grafana-build:main",
|
||||
"commands": [
|
||||
"/src/grafana-build build --distro={} --grafana-dir=$$PWD".format(distros),
|
||||
],
|
||||
"volumes": [{"name": "docker", "path": "/var/run/docker.sock"}],
|
||||
}
|
||||
|
||||
def rgm_build_docker_step(packages, ubuntu, alpine, depends_on = ["rgm-package"], file = "docker.txt", tag_format = "{{ .version }}-{{ .arch }}", ubuntu_tag_format = "{{ .version }}-ubuntu-{{ .arch }}"):
|
||||
return {
|
||||
"name": "rgm-build-docker",
|
||||
"image": "grafana/grafana-build:main",
|
||||
"commands": [
|
||||
"/src/grafana-build docker " +
|
||||
"--package=$(cat {} | grep tar.gz | grep -v docker | grep -v sha256) ".format(packages) +
|
||||
"--ubuntu-base={} ".format(ubuntu) +
|
||||
"--alpine-base={} ".format(alpine) +
|
||||
"--tag-format='{}' ".format(tag_format) +
|
||||
"--ubuntu-tag-format='{}' > {}".format(ubuntu_tag_format, file),
|
||||
"find ./dist -name '*docker*.tar.gz' -type f | xargs -n1 docker load -i",
|
||||
],
|
||||
"volumes": [{"name": "docker", "path": "/var/run/docker.sock"}],
|
||||
"depends_on": depends_on,
|
||||
}
|
@ -2,23 +2,34 @@
|
||||
This module contains all the docker images that are used to build test and publish Grafana.
|
||||
"""
|
||||
|
||||
load(
|
||||
"scripts/drone/variables.star",
|
||||
"golang_version",
|
||||
"nodejs_version",
|
||||
)
|
||||
|
||||
images = {
|
||||
"cloudsdk_image": "google/cloud-sdk:431.0.0",
|
||||
"build_image": "grafana/build-container:1.7.5",
|
||||
"publish_image": "grafana/grafana-ci-deploy:1.3.3",
|
||||
"alpine_image": "alpine:3.17.1",
|
||||
"curl_image": "byrnedo/alpine-curl:0.1.8",
|
||||
"go_image": "golang:1.20.6",
|
||||
"plugins_slack_image": "plugins/slack",
|
||||
"postgres_alpine_image": "postgres:12.3-alpine",
|
||||
"mysql5_image": "mysql:5.7.39",
|
||||
"mysql8_image": "mysql:8.0.32",
|
||||
"redis_alpine_image": "redis:6.2.11-alpine",
|
||||
"memcached_alpine_image": "memcached:1.6.9-alpine",
|
||||
"package_publish_image": "us.gcr.io/kubernetes-dev/package-publish:latest",
|
||||
"openldap_image": "osixia/openldap:1.4.0",
|
||||
"drone_downstream_image": "grafana/drone-downstream",
|
||||
"docker_puppeteer_image": "grafana/docker-puppeteer:1.1.0",
|
||||
"docs_image": "grafana/docs-base:dbd975af06",
|
||||
"cypress_image": "cypress/included:12.15.0",
|
||||
"git": "alpine/git:2.40.1",
|
||||
"go": "golang:{}-alpine".format(golang_version),
|
||||
"node": "node:{}-alpine".format(nodejs_version),
|
||||
"cloudsdk": "google/cloud-sdk:431.0.0",
|
||||
"publish": "grafana/grafana-ci-deploy:1.3.3",
|
||||
"alpine": "alpine:3.17.1",
|
||||
"ubuntu": "ubuntu:22.10",
|
||||
"curl": "byrnedo/alpine-curl:0.1.8",
|
||||
"plugins_slack": "plugins/slack",
|
||||
"python": "python:3.8",
|
||||
"postgres_alpine": "postgres:12.3-alpine",
|
||||
"mysql5": "mysql:5.7.39",
|
||||
"mysql8": "mysql:8.0.32",
|
||||
"redis_alpine": "redis:6.2.11-alpine",
|
||||
"memcached_alpine": "memcached:1.6.9-alpine",
|
||||
"package_publish": "us.gcr.io/kubernetes-dev/package-publish:latest",
|
||||
"openldap": "osixia/openldap:1.4.0",
|
||||
"drone_downstream": "grafana/drone-downstream",
|
||||
"docker_puppeteer": "grafana/docker-puppeteer:1.1.0",
|
||||
"docs": "grafana/docs-base:dbd975af06",
|
||||
"cypress": "cypress/included:12.15.0",
|
||||
"dockerize": "jwilder/dockerize:0.6.1",
|
||||
"shellcheck": "koalaman/shellcheck:stable",
|
||||
}
|
||||
|
@ -4,9 +4,14 @@ All the windows images needed to be in a different file than the other images, s
|
||||
by trivy. Related issue: https://github.com/aquasecurity/trivy/issues/1392
|
||||
"""
|
||||
|
||||
load(
|
||||
"scripts/drone/variables.star",
|
||||
"golang_version",
|
||||
)
|
||||
|
||||
windows_images = {
|
||||
"1809_image": "mcr.microsoft.com/windows:1809",
|
||||
"wix_image": "grafana/ci-wix:0.1.1",
|
||||
"windows_server_core_image": "docker:windowsservercore-1809",
|
||||
"windows_go_image": "grafana/grafana-ci-windows-test:0.1.0",
|
||||
"1809": "mcr.microsoft.com/windows:1809",
|
||||
"wix": "grafana/ci-wix:0.1.1",
|
||||
"windows_server_core": "docker:windowsservercore-1809",
|
||||
"go": "golang:{}-windowsservercore-1809".format(golang_version),
|
||||
}
|
||||
|
9
scripts/drone/variables.star
Normal file
9
scripts/drone/variables.star
Normal file
@ -0,0 +1,9 @@
|
||||
"""
|
||||
global variables
|
||||
"""
|
||||
|
||||
grabpl_version = "v3.0.41"
|
||||
golang_version = "1.21.1"
|
||||
|
||||
# nodejs_version should match what's in ".nvmrc", but without the v prefix.
|
||||
nodejs_version = "18.12.0"
|
@ -1,16 +0,0 @@
|
||||
"""
|
||||
This module returns the pipeline used for version branches.
|
||||
"""
|
||||
|
||||
load(
|
||||
"scripts/drone/events/release.star",
|
||||
"oss_pipelines",
|
||||
)
|
||||
|
||||
ver_mode = "release-branch"
|
||||
trigger = {"ref": ["refs/heads/v[0-9]*"]}
|
||||
|
||||
def version_branch_pipelines():
|
||||
return (
|
||||
oss_pipelines(ver_mode = ver_mode, trigger = trigger)
|
||||
)
|
Loading…
Reference in New Issue
Block a user