[v11.3.x] CI: Consolidate package and docker steps (#95419)

update .drone.yml
This commit is contained in:
Kevin Minehart
2024-10-25 12:44:15 -05:00
committed by GitHub
parent a78607432e
commit 4a30c85b77
4 changed files with 140 additions and 162 deletions
+14 -8
View File
@@ -405,13 +405,14 @@ def playwright_e2e_report_post_link():
],
}
def upload_cdn_step(ver_mode, trigger = None):
def upload_cdn_step(ver_mode, trigger = None, depends_on = ["grafana-server"]):
"""Uploads CDN assets using the Grafana build tool.
Args:
ver_mode: only uses the step trigger when ver_mode == 'release-branch' or 'main'
trigger: a Drone trigger for the step.
Defaults to None.
depends_on: drone steps that this step depends on
Returns:
Drone step.
@@ -420,9 +421,7 @@ def upload_cdn_step(ver_mode, trigger = None):
step = {
"name": "upload-cdn-assets",
"image": images["publish"],
"depends_on": [
"grafana-server",
],
"depends_on": depends_on,
"environment": {
"GCP_KEY": from_secret(gcp_grafanauploads),
"PRERELEASE_BUCKET": from_secret(prerelease_bucket),
@@ -929,7 +928,7 @@ def fetch_images_step():
"volumes": [{"name": "docker", "path": "/var/run/docker.sock"}],
}
def publish_images_step(ver_mode, docker_repo, trigger = None):
def publish_images_step(ver_mode, docker_repo, trigger = None, depends_on = ["rgm-build-docker"]):
"""Generates a step for publishing public Docker images with grabpl.
Args:
@@ -939,6 +938,7 @@ def publish_images_step(ver_mode, docker_repo, trigger = None):
It is combined with the 'grafana/' library prefix.
trigger: a Drone trigger for the pipeline.
Defaults to None.
depends_on: drone steps that this step depends on
Returns:
Drone step.
@@ -959,7 +959,7 @@ def publish_images_step(ver_mode, docker_repo, trigger = None):
docker_repo,
)
deps = ["rgm-build-docker"]
deps = depends_on
if ver_mode == "release":
deps = ["fetch-images"]
cmd += " --version-tag ${DRONE_TAG}"
@@ -1149,7 +1149,12 @@ def release_canary_npm_packages_step(trigger = None):
return step
def upload_packages_step(ver_mode, trigger = None):
def upload_packages_step(ver_mode, trigger = None, depends_on = [
"end-to-end-tests-dashboards-suite",
"end-to-end-tests-panels-suite",
"end-to-end-tests-smoke-tests-suite",
"end-to-end-tests-various-suite",
]):
"""Upload packages to object storage.
Args:
@@ -1157,6 +1162,7 @@ def upload_packages_step(ver_mode, trigger = None):
edition packages when executed.
trigger: a Drone trigger for the step.
Defaults to None.
depends_on: drone steps that this step depends on
Returns:
Drone step.
@@ -1164,7 +1170,7 @@ def upload_packages_step(ver_mode, trigger = None):
step = {
"name": "upload-packages",
"image": images["publish"],
"depends_on": end_to_end_tests_deps(),
"depends_on": depends_on,
"environment": {
"GCP_KEY": from_secret(gcp_grafanauploads_base64),
"PRERELEASE_BUCKET": from_secret("prerelease_bucket"),
+21 -1
View File
@@ -3,6 +3,10 @@ Individual steps that use 'grafana-build' to replace existing individual steps.
These aren't used in releases.
"""
load(
"scripts/drone/utils/images.star",
"images",
)
load(
"scripts/drone/variables.star",
"golang_version",
@@ -22,7 +26,16 @@ def artifacts_cmd(artifacts = []):
return cmd
# rgm_artifacts_step will create artifacts using the '/src/build artifacts' command.
def rgm_artifacts_step(name = "rgm-package", artifacts = ["targz:grafana:linux/amd64", "targz:grafana:linux/arm64"], file = "packages.txt", depends_on = ["yarn-install"]):
def rgm_artifacts_step(
name = "rgm-package",
artifacts = ["targz:grafana:linux/amd64", "targz:grafana:linux/arm64"],
file = "packages.txt",
depends_on = ["yarn-install"],
tag_format = "{{ .version }}-{{ .arch }}",
ubuntu_tag_format = "{{ .version }}-ubuntu-{{ .arch }}",
verify = "false",
ubuntu = images["ubuntu"],
alpine = images["alpine"]):
cmd = artifacts_cmd(artifacts = artifacts)
return {
@@ -34,11 +47,18 @@ def rgm_artifacts_step(name = "rgm-package", artifacts = ["targz:grafana:linux/a
"_EXPERIMENTAL_DAGGER_CLOUD_TOKEN": from_secret(rgm_dagger_token),
},
"commands": [
"docker run --privileged --rm tonistiigi/binfmt --install all",
cmd +
"--go-version={} ".format(golang_version) +
"--yarn-cache=$$YARN_CACHE_FOLDER " +
"--build-id=$$DRONE_BUILD_NUMBER " +
"--ubuntu-base={} ".format(ubuntu) +
"--alpine-base={} ".format(alpine) +
"--tag-format='{}' ".format(tag_format) +
"--ubuntu-tag-format='{}' ".format(ubuntu_tag_format) +
"--verify='{}' ".format(verify) +
"--grafana-dir=$$PWD > {}".format(file),
"find ./dist -name '*docker*.tar.gz' -type f | xargs -n1 docker load -i",
],
"volumes": [{"name": "docker", "path": "/var/run/docker.sock"}],
}