From 656b296d6e23ba7fe9ea25be6e87b777b6025f68 Mon Sep 17 00:00:00 2001 From: "Jens L." Date: Wed, 22 Jan 2025 04:13:26 +0100 Subject: [PATCH] ci: fix missing build args for dev and release (#12760) * ci: fix missing build args for dev and release Signed-off-by: Jens Langhammer * fix? Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer --- .github/actions/docker-push-variables/action.yml | 8 ++++++++ .github/actions/docker-push-variables/push_vars.py | 8 ++++++++ .github/workflows/_reusable-docker-build-single.yaml | 3 ++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/.github/actions/docker-push-variables/action.yml b/.github/actions/docker-push-variables/action.yml index 04fdb8d6b2..2b1fc9ce26 100644 --- a/.github/actions/docker-push-variables/action.yml +++ b/.github/actions/docker-push-variables/action.yml @@ -9,6 +9,9 @@ inputs: image-arch: required: false description: "Docker image arch" + release: + required: true + description: "True if this is a release build, false if this is a dev/PR build" outputs: shouldPush: @@ -44,6 +47,9 @@ outputs: imageMainName: description: "Docker image main name" value: ${{ steps.ev.outputs.imageMainName }} + imageBuildArgs: + description: "Docker image build args" + value: ${{ steps.ev.outputs.imageBuildArgs }} runs: using: "composite" @@ -54,6 +60,8 @@ runs: env: IMAGE_NAME: ${{ inputs.image-name }} IMAGE_ARCH: ${{ inputs.image-arch }} + RELEASE: ${{ inputs.release }} PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }} + REF: ${{ github.ref }} run: | python3 ${{ github.action_path }}/push_vars.py diff --git a/.github/actions/docker-push-variables/push_vars.py b/.github/actions/docker-push-variables/push_vars.py index feeae09b8c..578fceb57f 100644 --- a/.github/actions/docker-push-variables/push_vars.py +++ b/.github/actions/docker-push-variables/push_vars.py @@ -80,6 +80,13 @@ if should_push: cache_to = f"type=registry,ref={get_attest_image_names(image_tags)}:{_cache_tag},mode=max" +image_build_args = [] +if os.getenv("RELEASE", "false").lower() == "true": + image_build_args = [f"VERSION={os.getenv('REF')}"] +else: + image_build_args = [f"GIT_BUILD_HASH={sha}"] +image_build_args = "\n".join(image_build_args) + with open(os.environ["GITHUB_OUTPUT"], "a+", encoding="utf-8") as _output: print(f"shouldPush={str(should_push).lower()}", file=_output) print(f"sha={sha}", file=_output) @@ -91,3 +98,4 @@ with open(os.environ["GITHUB_OUTPUT"], "a+", encoding="utf-8") as _output: print(f"imageMainTag={image_main_tag}", file=_output) print(f"imageMainName={image_tags[0]}", file=_output) print(f"cacheTo={cache_to}", file=_output) + print(f"imageBuildArgs={image_build_args}", file=_output) diff --git a/.github/workflows/_reusable-docker-build-single.yaml b/.github/workflows/_reusable-docker-build-single.yaml index cca6a9a213..c7896a8c09 100644 --- a/.github/workflows/_reusable-docker-build-single.yaml +++ b/.github/workflows/_reusable-docker-build-single.yaml @@ -50,6 +50,7 @@ jobs: with: image-name: ${{ inputs.image_name }} image-arch: ${{ inputs.image_arch }} + release: ${{ inputs.release }} - name: Login to Docker Hub if: ${{ inputs.registry_dockerhub }} uses: docker/login-action@v3 @@ -81,7 +82,7 @@ jobs: GEOIPUPDATE_ACCOUNT_ID=${{ secrets.GEOIPUPDATE_ACCOUNT_ID }} GEOIPUPDATE_LICENSE_KEY=${{ secrets.GEOIPUPDATE_LICENSE_KEY }} build-args: | - VERSION=${{ github.ref }} + ${{ steps.ev.outputs.imageBuildArgs }} tags: ${{ steps.ev.outputs.imageTags }} platforms: linux/${{ inputs.image_arch }} cache-from: type=registry,ref=${{ steps.ev.outputs.attestImageNames }}:buildcache-${{ inputs.image_arch }}