mirror of https://github.com/grafana/grafana
CI: Add rgm to drone (#66991)
* add drone stub that build grafana using 'grafana/build' (dagger) --------- Co-authored-by: Ricky Whitaker <ricky.whitaker@grafana.com>pull/67778/head
parent
00a6a14a23
commit
768efe9748
@ -0,0 +1,100 @@ |
|||||||
|
""" |
||||||
|
rgm uses 'github.com/grafana/grafana-build' to build Grafana on the following events: |
||||||
|
* A merge to main |
||||||
|
* A tag that begins with a 'v' |
||||||
|
""" |
||||||
|
|
||||||
|
load( |
||||||
|
"scripts/drone/utils/utils.star", |
||||||
|
"pipeline", |
||||||
|
) |
||||||
|
load( |
||||||
|
"scripts/drone/vault.star", |
||||||
|
"from_secret", |
||||||
|
"rgm_destination", |
||||||
|
"rgm_gcp_key_base64", |
||||||
|
"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), |
||||||
|
} |
||||||
|
|
||||||
|
def rgm_build(script = "drone_publish_main.sh"): |
||||||
|
clone_step = { |
||||||
|
"name": "clone-rgm", |
||||||
|
"image": "alpine/git", |
||||||
|
"commands": [ |
||||||
|
"git clone https://github.com/grafana/grafana-build.git rgm", |
||||||
|
], |
||||||
|
"failure": "ignore", |
||||||
|
} |
||||||
|
|
||||||
|
rgm_build_step = { |
||||||
|
"name": "rgm-build", |
||||||
|
"image": "golang:1.20.3-alpine", |
||||||
|
"commands": [ |
||||||
|
# the docker program is a requirement for running dagger programs |
||||||
|
"apk update && apk add docker", |
||||||
|
"export GRAFANA_DIR=$$(pwd)", |
||||||
|
"cd rgm && ./scripts/{}".format(script), |
||||||
|
], |
||||||
|
"environment": rgm_env_secrets, |
||||||
|
# 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"}], |
||||||
|
"failure": "ignore", |
||||||
|
} |
||||||
|
|
||||||
|
return [ |
||||||
|
clone_step, |
||||||
|
rgm_build_step, |
||||||
|
] |
||||||
|
|
||||||
|
def rgm_main(): |
||||||
|
trigger = { |
||||||
|
"event": [ |
||||||
|
"push", |
||||||
|
], |
||||||
|
"branch": "main", |
||||||
|
} |
||||||
|
|
||||||
|
return pipeline( |
||||||
|
name = "[RGM] Build and upload a grafana.tar.gz to a prerelease bucket when merging to main", |
||||||
|
edition = "all", |
||||||
|
trigger = trigger, |
||||||
|
steps = rgm_build(), |
||||||
|
) |
||||||
|
|
||||||
|
def rgm_tag(): |
||||||
|
trigger = { |
||||||
|
"event": { |
||||||
|
"exclude": [ |
||||||
|
"promote", |
||||||
|
], |
||||||
|
}, |
||||||
|
"ref": { |
||||||
|
"include": [ |
||||||
|
"refs/tags/v*", |
||||||
|
], |
||||||
|
"exclude": [ |
||||||
|
"refs/tags/*-cloud*", |
||||||
|
], |
||||||
|
}, |
||||||
|
} |
||||||
|
|
||||||
|
return pipeline( |
||||||
|
name = "[RGM] Build and upload a grafana.tar.gz to a prerelease bucket when tagging", |
||||||
|
edition = "all", |
||||||
|
trigger = trigger, |
||||||
|
steps = rgm_build(script = "drone_publish_tag.sh"), |
||||||
|
depends_on = ["main-test-backend", "main-test-frontend"], |
||||||
|
) |
||||||
|
|
||||||
|
def rgm(): |
||||||
|
return [ |
||||||
|
rgm_main(), |
||||||
|
rgm_tag(), |
||||||
|
] |
||||||
Loading…
Reference in new issue