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
This commit is contained in:
Kevin Minehart 2024-07-30 09:44:04 -05:00 committed by GitHub
parent 68dd311337
commit bee678da94
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 89 additions and 58 deletions

View File

@ -3399,26 +3399,40 @@ steps:
- name: docker - name: docker
path: /var/run/docker.sock path: /var/run/docker.sock
- commands: - commands:
- "\n debug=\n if [[ -n $${DRY_RUN} ]]; then debug=echo; fi\n docker login - apk add bash
-u $${DOCKER_USER} -p $${DOCKER_PASSWORD}\n\n # Push the grafana-image-tags - |2-
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 bash -c '
\ $debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-amd64\n $debug debug=
docker push grafana/grafana-image-tags:$${TAG}-ubuntu-arm64\n $debug docker if [[ -n $${DRY_RUN} ]]; then debug=echo; fi
push grafana/grafana-image-tags:$${TAG}-ubuntu-armv7\n\n # Create the grafana docker login -u $${DOCKER_USER} -p $${DOCKER_PASSWORD}
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 # Push the grafana-image-tags images
\ $debug docker manifest create grafana/grafana:${TAG}-ubuntu grafana/grafana-image-tags:$${TAG}-ubuntu-amd64 $$debug docker push grafana/grafana-image-tags:$${TAG}-amd64
\ grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 grafana/grafana-image-tags:$${TAG}-ubuntu-armv7\n\n $$debug docker push grafana/grafana-image-tags:$${TAG}-arm64
\ # Push the grafana manifests\n $debug docker manifest push grafana/grafana:$${TAG}\n $$debug docker push grafana/grafana-image-tags:$${TAG}-armv7
\ $debug docker manifest push grafana/grafana:$${TAG}-ubuntu\n\n # if LATEST $$debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-amd64
is set, then also create & push latest\n if [[ -n $${LATEST} ]]; then\n $debug $$debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-arm64
docker manifest create grafana/grafana:latest grafana/grafana-image-tags:$${TAG}-amd64 $$debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-armv7
\ 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 # Create the grafana manifests
\ grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 grafana/grafana-image-tags:$${TAG}-ubuntu-armv7\n\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
\ $debug docker manifest push grafana/grafana:latest\n $debug docker
manifest push grafana/grafana:latest-ubuntu\n\n fi\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
# 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: depends_on:
- fetch-images - fetch-images
environment: environment:
@ -3516,26 +3530,40 @@ steps:
- name: docker - name: docker
path: /var/run/docker.sock path: /var/run/docker.sock
- commands: - commands:
- "\n debug=\n if [[ -n $${DRY_RUN} ]]; then debug=echo; fi\n docker login - apk add bash
-u $${DOCKER_USER} -p $${DOCKER_PASSWORD}\n\n # Push the grafana-image-tags - |2-
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 bash -c '
\ $debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-amd64\n $debug debug=
docker push grafana/grafana-image-tags:$${TAG}-ubuntu-arm64\n $debug docker if [[ -n $${DRY_RUN} ]]; then debug=echo; fi
push grafana/grafana-image-tags:$${TAG}-ubuntu-armv7\n\n # Create the grafana docker login -u $${DOCKER_USER} -p $${DOCKER_PASSWORD}
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 # Push the grafana-image-tags images
\ $debug docker manifest create grafana/grafana:${TAG}-ubuntu grafana/grafana-image-tags:$${TAG}-ubuntu-amd64 $$debug docker push grafana/grafana-image-tags:$${TAG}-amd64
\ grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 grafana/grafana-image-tags:$${TAG}-ubuntu-armv7\n\n $$debug docker push grafana/grafana-image-tags:$${TAG}-arm64
\ # Push the grafana manifests\n $debug docker manifest push grafana/grafana:$${TAG}\n $$debug docker push grafana/grafana-image-tags:$${TAG}-armv7
\ $debug docker manifest push grafana/grafana:$${TAG}-ubuntu\n\n # if LATEST $$debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-amd64
is set, then also create & push latest\n if [[ -n $${LATEST} ]]; then\n $debug $$debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-arm64
docker manifest create grafana/grafana:latest grafana/grafana-image-tags:$${TAG}-amd64 $$debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-armv7
\ 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 # Create the grafana manifests
\ grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 grafana/grafana-image-tags:$${TAG}-ubuntu-armv7\n\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
\ $debug docker manifest push grafana/grafana:latest\n $debug docker
manifest push grafana/grafana:latest-ubuntu\n\n fi\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
# 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: depends_on:
- fetch-images - fetch-images
environment: environment:
@ -6051,6 +6079,6 @@ kind: secret
name: gcr_credentials name: gcr_credentials
--- ---
kind: signature kind: signature
hmac: 9abbec7da57a95a1be56c254db4c1e473bcdd5c9564cca6909d99c70d15dbc1d hmac: 3ec8f984961a401ed9785c3f537a725e1ba3912b713e1796561634d9c99f93ba
... ...

View File

@ -30,49 +30,49 @@ def publish_image_public_step():
A drone step which publishes Docker images for a public release. A drone step which publishes Docker images for a public release.
""" """
command = """ command = """
bash -c '
debug= debug=
if [[ -n $${DRY_RUN} ]]; then debug=echo; fi if [[ -n $${DRY_RUN} ]]; then debug=echo; fi
docker login -u $${DOCKER_USER} -p $${DOCKER_PASSWORD} docker login -u $${DOCKER_USER} -p $${DOCKER_PASSWORD}
# Push the grafana-image-tags images # Push the grafana-image-tags images
$debug docker push grafana/grafana-image-tags:$${TAG}-amd64 $$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}-arm64
$debug docker push grafana/grafana-image-tags:$${TAG}-armv7 $$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-amd64
$debug docker push grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 $$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}-ubuntu-armv7
# Create the grafana manifests # 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}-amd64 \
grafana/grafana-image-tags:$${TAG}-arm64 \ grafana/grafana-image-tags:$${TAG}-arm64 \
grafana/grafana-image-tags:$${TAG}-armv7 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-amd64 \
grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 \ grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 \
grafana/grafana-image-tags:$${TAG}-ubuntu-armv7 grafana/grafana-image-tags:$${TAG}-ubuntu-armv7
# Push the grafana manifests # Push the grafana manifests
$debug docker manifest push grafana/grafana:$${TAG} $$debug docker manifest push grafana/grafana:$${TAG}
$debug docker manifest push grafana/grafana:$${TAG}-ubuntu $$debug docker manifest push grafana/grafana:$${TAG}-ubuntu
# if LATEST is set, then also create & push latest # if LATEST is set, then also create & push latest
if [[ -n $${LATEST} ]]; then 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}-amd64 \
grafana/grafana-image-tags:$${TAG}-arm64 \ grafana/grafana-image-tags:$${TAG}-arm64 \
grafana/grafana-image-tags:$${TAG}-armv7 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-amd64 \
grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 \ grafana/grafana-image-tags:$${TAG}-ubuntu-arm64 \
grafana/grafana-image-tags:$${TAG}-ubuntu-armv7 grafana/grafana-image-tags:$${TAG}-ubuntu-armv7
$debug docker manifest push grafana/grafana:latest $$debug docker manifest push grafana/grafana:latest
$debug docker manifest push grafana/grafana:latest-ubuntu $$debug docker manifest push grafana/grafana:latest-ubuntu
fi fi'"""
"""
return { return {
"environment": { "environment": {
"DOCKER_USER": from_secret("docker_username"), "DOCKER_USER": from_secret("docker_username"),
@ -81,7 +81,10 @@ def publish_image_public_step():
"name": "publish-images-grafana", "name": "publish-images-grafana",
"image": images["docker"], "image": images["docker"],
"depends_on": ["fetch-images"], "depends_on": ["fetch-images"],
"commands": [command], "commands": [
"apk add bash",
command,
],
"volumes": [{"name": "docker", "path": "/var/run/docker.sock"}], "volumes": [{"name": "docker", "path": "/var/run/docker.sock"}],
} }