diff --git a/.github/actions/docker-push-variables/action.yml b/.github/actions/docker-push-variables/action.yml index 04fdb8d6b2c4..2b1fc9ce262d 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 feeae09b8c3b..578fceb57f09 100644 --- a/.github/actions/docker-push-variables/push_vars.py +++ b/.github/actions/docker-push-variables/push_vars.py @@ -80,6 +80,13 @@ def get_attest_image_names(image_with_tags: list[str]): 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 @@ def get_attest_image_names(image_with_tags: list[str]): 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 cca6a9a2139e..c7896a8c093d 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 }}