From 850eaa109d59c339bb4dd388d6d830f1cb7ccb3b Mon Sep 17 00:00:00 2001 From: Andreas Christou Date: Tue, 30 Jul 2024 22:08:41 +0700 Subject: [PATCH] [v10.3.x] CI: Fix drone docker publish (#91204) (#91209) CI: Fix drone docker publish (#91204) * $debug -> $$debug * use bash instead of sh * Update publish_images.star * Install bash in the docker/docker image * buildifier (cherry picked from commit bee678da94621eed1826d3344d074b693cdfd63b) Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com> --- .drone.yml | 110 ++++++++++++-------- scripts/drone/pipelines/publish_images.star | 37 ++++--- 2 files changed, 89 insertions(+), 58 deletions(-) diff --git a/.drone.yml b/.drone.yml index 99968ede645..63a5a99981e 100644 --- a/.drone.yml +++ b/.drone.yml @@ -2569,26 +2569,40 @@ steps: - name: docker path: /var/run/docker.sock - commands: - - "\n debug=\n if [[ -n $${DRY_RUN} ]]; then debug=echo; fi\n docker login - -u $${DOCKER_USER} -p $${DOCKER_PASSWORD}\n\n # Push the grafana-image-tags - images\n $debug docker push grafana/grafana-image-tags:$${TAG}-amd64\n $debug - docker push grafana/grafana-image-tags:$${TAG}-arm64\n $debug docker push grafana/grafana-image-tags:$${TAG}-armv7\n - \ $debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-amd64\n $debug - docker push grafana/grafana-image-tags:$${TAG}-ubuntu-arm64\n $debug docker - push grafana/grafana-image-tags:$${TAG}-ubuntu-armv7\n\n # Create the grafana - manifests\n $debug docker manifest create grafana/grafana:${TAG} grafana/grafana-image-tags:$${TAG}-amd64 - \ grafana/grafana-image-tags:$${TAG}-arm64 grafana/grafana-image-tags:$${TAG}-armv7\n\n - \ $debug docker manifest create grafana/grafana:${TAG}-ubuntu grafana/grafana-image-tags:$${TAG}-ubuntu-amd64 - \ grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 grafana/grafana-image-tags:$${TAG}-ubuntu-armv7\n\n - \ # Push the grafana manifests\n $debug docker manifest push grafana/grafana:$${TAG}\n - \ $debug docker manifest push grafana/grafana:$${TAG}-ubuntu\n\n # if LATEST - is set, then also create & push latest\n if [[ -n $${LATEST} ]]; then\n $debug - docker manifest create grafana/grafana:latest grafana/grafana-image-tags:$${TAG}-amd64 - \ grafana/grafana-image-tags:$${TAG}-arm64 grafana/grafana-image-tags:$${TAG}-armv7\n - \ $debug docker manifest create grafana/grafana:latest-ubuntu grafana/grafana-image-tags:$${TAG}-ubuntu-amd64 - \ grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 grafana/grafana-image-tags:$${TAG}-ubuntu-armv7\n\n - \ $debug docker manifest push grafana/grafana:latest\n $debug docker - manifest push grafana/grafana:latest-ubuntu\n\n fi\n " + - apk add bash + - |2- + + bash -c ' + debug= + if [[ -n $${DRY_RUN} ]]; then debug=echo; fi + docker login -u $${DOCKER_USER} -p $${DOCKER_PASSWORD} + + # Push the grafana-image-tags images + $$debug docker push grafana/grafana-image-tags:$${TAG}-amd64 + $$debug docker push grafana/grafana-image-tags:$${TAG}-arm64 + $$debug docker push grafana/grafana-image-tags:$${TAG}-armv7 + $$debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-amd64 + $$debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 + $$debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-armv7 + + # Create the grafana manifests + $$debug docker manifest create grafana/grafana:${TAG} grafana/grafana-image-tags:$${TAG}-amd64 grafana/grafana-image-tags:$${TAG}-arm64 grafana/grafana-image-tags:$${TAG}-armv7 + + $$debug docker manifest create grafana/grafana:${TAG}-ubuntu grafana/grafana-image-tags:$${TAG}-ubuntu-amd64 grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 grafana/grafana-image-tags:$${TAG}-ubuntu-armv7 + + # Push the grafana manifests + $$debug docker manifest push grafana/grafana:$${TAG} + $$debug docker manifest push grafana/grafana:$${TAG}-ubuntu + + # if LATEST is set, then also create & push latest + if [[ -n $${LATEST} ]]; then + $$debug docker manifest create grafana/grafana:latest grafana/grafana-image-tags:$${TAG}-amd64 grafana/grafana-image-tags:$${TAG}-arm64 grafana/grafana-image-tags:$${TAG}-armv7 + $$debug docker manifest create grafana/grafana:latest-ubuntu grafana/grafana-image-tags:$${TAG}-ubuntu-amd64 grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 grafana/grafana-image-tags:$${TAG}-ubuntu-armv7 + + $$debug docker manifest push grafana/grafana:latest + $$debug docker manifest push grafana/grafana:latest-ubuntu + + fi' depends_on: - fetch-images environment: @@ -2686,26 +2700,40 @@ steps: - name: docker path: /var/run/docker.sock - commands: - - "\n debug=\n if [[ -n $${DRY_RUN} ]]; then debug=echo; fi\n docker login - -u $${DOCKER_USER} -p $${DOCKER_PASSWORD}\n\n # Push the grafana-image-tags - images\n $debug docker push grafana/grafana-image-tags:$${TAG}-amd64\n $debug - docker push grafana/grafana-image-tags:$${TAG}-arm64\n $debug docker push grafana/grafana-image-tags:$${TAG}-armv7\n - \ $debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-amd64\n $debug - docker push grafana/grafana-image-tags:$${TAG}-ubuntu-arm64\n $debug docker - push grafana/grafana-image-tags:$${TAG}-ubuntu-armv7\n\n # Create the grafana - manifests\n $debug docker manifest create grafana/grafana:${TAG} grafana/grafana-image-tags:$${TAG}-amd64 - \ grafana/grafana-image-tags:$${TAG}-arm64 grafana/grafana-image-tags:$${TAG}-armv7\n\n - \ $debug docker manifest create grafana/grafana:${TAG}-ubuntu grafana/grafana-image-tags:$${TAG}-ubuntu-amd64 - \ grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 grafana/grafana-image-tags:$${TAG}-ubuntu-armv7\n\n - \ # Push the grafana manifests\n $debug docker manifest push grafana/grafana:$${TAG}\n - \ $debug docker manifest push grafana/grafana:$${TAG}-ubuntu\n\n # if LATEST - is set, then also create & push latest\n if [[ -n $${LATEST} ]]; then\n $debug - docker manifest create grafana/grafana:latest grafana/grafana-image-tags:$${TAG}-amd64 - \ grafana/grafana-image-tags:$${TAG}-arm64 grafana/grafana-image-tags:$${TAG}-armv7\n - \ $debug docker manifest create grafana/grafana:latest-ubuntu grafana/grafana-image-tags:$${TAG}-ubuntu-amd64 - \ grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 grafana/grafana-image-tags:$${TAG}-ubuntu-armv7\n\n - \ $debug docker manifest push grafana/grafana:latest\n $debug docker - manifest push grafana/grafana:latest-ubuntu\n\n fi\n " + - apk add bash + - |2- + + bash -c ' + debug= + if [[ -n $${DRY_RUN} ]]; then debug=echo; fi + docker login -u $${DOCKER_USER} -p $${DOCKER_PASSWORD} + + # Push the grafana-image-tags images + $$debug docker push grafana/grafana-image-tags:$${TAG}-amd64 + $$debug docker push grafana/grafana-image-tags:$${TAG}-arm64 + $$debug docker push grafana/grafana-image-tags:$${TAG}-armv7 + $$debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-amd64 + $$debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 + $$debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-armv7 + + # Create the grafana manifests + $$debug docker manifest create grafana/grafana:${TAG} grafana/grafana-image-tags:$${TAG}-amd64 grafana/grafana-image-tags:$${TAG}-arm64 grafana/grafana-image-tags:$${TAG}-armv7 + + $$debug docker manifest create grafana/grafana:${TAG}-ubuntu grafana/grafana-image-tags:$${TAG}-ubuntu-amd64 grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 grafana/grafana-image-tags:$${TAG}-ubuntu-armv7 + + # Push the grafana manifests + $$debug docker manifest push grafana/grafana:$${TAG} + $$debug docker manifest push grafana/grafana:$${TAG}-ubuntu + + # if LATEST is set, then also create & push latest + if [[ -n $${LATEST} ]]; then + $$debug docker manifest create grafana/grafana:latest grafana/grafana-image-tags:$${TAG}-amd64 grafana/grafana-image-tags:$${TAG}-arm64 grafana/grafana-image-tags:$${TAG}-armv7 + $$debug docker manifest create grafana/grafana:latest-ubuntu grafana/grafana-image-tags:$${TAG}-ubuntu-amd64 grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 grafana/grafana-image-tags:$${TAG}-ubuntu-armv7 + + $$debug docker manifest push grafana/grafana:latest + $$debug docker manifest push grafana/grafana:latest-ubuntu + + fi' depends_on: - fetch-images environment: @@ -5116,6 +5144,6 @@ kind: secret name: gcr_credentials --- kind: signature -hmac: da36d2b066dc30154a3ff1d8a3a643ac46b9e2c871f0d43d4104899d88ab6d58 +hmac: 575ce271cc87b6db1ac6ce4962d97b67f842bfc656774c4065b0096ffbb93f12 ... diff --git a/scripts/drone/pipelines/publish_images.star b/scripts/drone/pipelines/publish_images.star index 060e14598fb..6fbcb7c475c 100644 --- a/scripts/drone/pipelines/publish_images.star +++ b/scripts/drone/pipelines/publish_images.star @@ -30,49 +30,49 @@ def publish_image_public_step(): A drone step which publishes Docker images for a public release. """ command = """ + bash -c ' debug= if [[ -n $${DRY_RUN} ]]; then debug=echo; fi docker login -u $${DOCKER_USER} -p $${DOCKER_PASSWORD} # Push the grafana-image-tags images - $debug docker push grafana/grafana-image-tags:$${TAG}-amd64 - $debug docker push grafana/grafana-image-tags:$${TAG}-arm64 - $debug docker push grafana/grafana-image-tags:$${TAG}-armv7 - $debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-amd64 - $debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 - $debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-armv7 + $$debug docker push grafana/grafana-image-tags:$${TAG}-amd64 + $$debug docker push grafana/grafana-image-tags:$${TAG}-arm64 + $$debug docker push grafana/grafana-image-tags:$${TAG}-armv7 + $$debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-amd64 + $$debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 + $$debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-armv7 # Create the grafana manifests - $debug docker manifest create grafana/grafana:${TAG} \ + $$debug docker manifest create grafana/grafana:${TAG} \ grafana/grafana-image-tags:$${TAG}-amd64 \ grafana/grafana-image-tags:$${TAG}-arm64 \ grafana/grafana-image-tags:$${TAG}-armv7 - $debug docker manifest create grafana/grafana:${TAG}-ubuntu \ + $$debug docker manifest create grafana/grafana:${TAG}-ubuntu \ grafana/grafana-image-tags:$${TAG}-ubuntu-amd64 \ grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 \ grafana/grafana-image-tags:$${TAG}-ubuntu-armv7 # Push the grafana manifests - $debug docker manifest push grafana/grafana:$${TAG} - $debug docker manifest push grafana/grafana:$${TAG}-ubuntu + $$debug docker manifest push grafana/grafana:$${TAG} + $$debug docker manifest push grafana/grafana:$${TAG}-ubuntu # if LATEST is set, then also create & push latest if [[ -n $${LATEST} ]]; then - $debug docker manifest create grafana/grafana:latest \ + $$debug docker manifest create grafana/grafana:latest \ grafana/grafana-image-tags:$${TAG}-amd64 \ grafana/grafana-image-tags:$${TAG}-arm64 \ grafana/grafana-image-tags:$${TAG}-armv7 - $debug docker manifest create grafana/grafana:latest-ubuntu \ + $$debug docker manifest create grafana/grafana:latest-ubuntu \ grafana/grafana-image-tags:$${TAG}-ubuntu-amd64 \ grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 \ grafana/grafana-image-tags:$${TAG}-ubuntu-armv7 - $debug docker manifest push grafana/grafana:latest - $debug docker manifest push grafana/grafana:latest-ubuntu + $$debug docker manifest push grafana/grafana:latest + $$debug docker manifest push grafana/grafana:latest-ubuntu - fi - """ + fi'""" return { "environment": { "DOCKER_USER": from_secret("docker_username"), @@ -81,7 +81,10 @@ def publish_image_public_step(): "name": "publish-images-grafana", "image": images["docker"], "depends_on": ["fetch-images"], - "commands": [command], + "commands": [ + "apk add bash", + command, + ], "volumes": [{"name": "docker", "path": "/var/run/docker.sock"}], }