@@ -100,12 +100,13 @@ jobs:
100100 echo "SHA_SHORT=$(git -C $GITHUB_WORKSPACE/arc rev-parse --short HEAD)" >> $GITHUB_ENV
101101 echo "LATEST_TAG_DOCKER=${{ env.DOCKERHUB_USERNAME }}/${{ matrix.name }}:latest" >> $GITHUB_ENV
102102 echo "LATEST_TAG_GHCR=ghcr.io/${{ env.TARGET_ORG }}/${{ env.TARGET_REPO }}/${{ matrix.name }}:latest" >> $GITHUB_ENV
103+ echo "DOCKERFILE_PREFIX=./arc/runner/${{ matrix.name }}.${{matrix.os-name}}-${{ matrix.os-version }}" >> $GITHUB_ENV
103104
104105 - name : Build and Push Versioned Tags
105106 uses : docker/build-push-action@v3
106107 with :
107108 context : ./arc/runner
108- file : ./arc/runner/ ${{ matrix.name }}.${{matrix.os-name}}-${{ matrix.os-version }}.dockerfile
109+ file : ${{ env.DOCKERFILE_PREFIX }}.dockerfile
109110 platforms : linux/amd64,linux/arm64
110111 pull : true
111112 push : ${{ inputs.push_to_registries }}
@@ -117,10 +118,35 @@ jobs:
117118 ${{ env.DOCKERHUB_USERNAME }}/${{ matrix.name }}:${{ matrix.os-name }}-${{ matrix.os-version }}
118119 ${{ env.DOCKERHUB_USERNAME }}/${{ matrix.name }}:v${{ inputs.runner_version }}-${{ matrix.os-name }}-${{ matrix.os-version }}
119120 ${{ env.DOCKERHUB_USERNAME }}/${{ matrix.name }}:v${{ inputs.runner_version }}-${{ matrix.os-name }}-${{ matrix.os-version }}-${{ env.SHA_SHORT }}
120- ${{ matrix.latest == 'true' && env.LATEST_TAG_DOCKER || '' }}
121121 ghcr.io/${{ env.TARGET_ORG }}/${{ env.TARGET_REPO }}/${{ matrix.name }}:${{ matrix.os-name }}-${{ matrix.os-version }}
122122 ghcr.io/${{ env.TARGET_ORG }}/${{ env.TARGET_REPO }}/${{ matrix.name }}:v${{ inputs.runner_version }}-${{ matrix.os-name }}-${{ matrix.os-version }}
123123 ghcr.io/${{ env.TARGET_ORG }}/${{ env.TARGET_REPO }}/${{ matrix.name }}:v${{ inputs.runner_version }}-${{ matrix.os-name }}-${{ matrix.os-version }}-${{ env.SHA_SHORT }}
124- ${{ matrix.latest == 'true' && env.LATEST_TAG_GHCR || '' }}
124+ cache-from : type=registry,ref=ghcr.io/${{ env.TARGET_ORG }}/${{ env.TARGET_REPO }}/${{ matrix.name }}:v${{ inputs.runner_version }}-${{ matrix.os-name }}-${{ matrix.os-version }}
125+ cache-to : type=inline
126+
127+ - name : Generate Dockerfile for image with latest tag
128+ if : ${{ matrix.latest == 'true' }}
129+ run : |
130+ cat <<EOF
131+ FROM ${{ env.DOCKERHUB_USERNAME }}/${{ matrix.name }}:${{ matrix.os-name }}-${{ matrix.os-version }}
132+ ENV SHOW_LATEST_TAG_WARN=1
133+ EOF | tee ${{ env.DOCKERFILE_PREFIX }}.latest.dockerfile
134+
135+ - name : Build and Push Versioned Tags
136+ if : ${{ matrix.latest == 'true' }}
137+ uses : docker/build-push-action@v3
138+ with :
139+ context : ./arc/runner
140+ file : ${{ env.DOCKERFILE_PREFIX }}.latest.dockerfile
141+ platforms : linux/amd64,linux/arm64
142+ pull : true
143+ push : ${{ inputs.push_to_registries }}
144+ build-args : |
145+ RUNNER_VERSION=${{ inputs.runner_version }}
146+ DOCKER_VERSION=${{ inputs.docker_version }}
147+ RUNNER_CONTAINER_HOOKS_VERSION=${{ inputs.runner_container_hooks_version }}
148+ tags : |
149+ ${{ env.LATEST_TAG_DOCKER }}
150+ ${{ env.LATEST_TAG_GHCR }}
125151 cache-from : type=registry,ref=ghcr.io/${{ env.TARGET_ORG }}/${{ env.TARGET_REPO }}/${{ matrix.name }}:v${{ inputs.runner_version }}-${{ matrix.os-name }}-${{ matrix.os-version }}
126152 cache-to : type=inline
0 commit comments