From bee678da94621eed1826d3344d074b693cdfd63b Mon Sep 17 00:00:00 2001 From: Kevin Minehart <5140827+kminehart@users.noreply.github.com> Date: Tue, 30 Jul 2024 09:44:04 -0500 Subject: [PATCH] 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 --- .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 5942ff66c17..ac3ccb9c97f 100644 --- a/.drone.yml +++ b/.drone.yml @@ -3399,26 +3399,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: @@ -3516,26 +3530,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: @@ -6051,6 +6079,6 @@ kind: secret name: gcr_credentials --- kind: signature -hmac: 9abbec7da57a95a1be56c254db4c1e473bcdd5c9564cca6909d99c70d15dbc1d +hmac: 3ec8f984961a401ed9785c3f537a725e1ba3912b713e1796561634d9c99f93ba ... 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"}], }