|
6 | 6 | tag: |
7 | 7 | description: "Docker image tag" |
8 | 8 | required: true |
| 9 | + set_as_latest: |
| 10 | + description: "Set as latest release" |
| 11 | + type: boolean |
| 12 | + default: false |
| 13 | + required: false |
9 | 14 |
|
10 | 15 | release: |
11 | 16 | types: |
@@ -57,13 +62,14 @@ jobs: |
57 | 62 | echo "Service ${{ matrix.service_name }} not found in docker-compose.build.yaml" && exit 1 |
58 | 63 | fi |
59 | 64 |
|
60 | | - # Set latest tag for releases |
61 | | - if [ "${{ github.event_name }}" = "release" ]; then |
62 | | - echo "latest=true" >> $GITHUB_OUTPUT |
63 | | - echo "IMAGE_TAGS=unstract/${{ matrix.service_name }}:${{ env.DOCKER_VERSION_TAG }},unstract/${{ matrix.service_name }}:latest" >> $GITHUB_ENV |
| 65 | + # Set latest tag for releases or when explicitly requested |
| 66 | + echo "SEMVER_IMAGE_TAG=unstract/${{ matrix.service_name }}:${{ env.DOCKER_VERSION_TAG }}" >> $GITHUB_ENV |
| 67 | +
|
| 68 | + # Set latest tag if it's a release or if set_as_latest is true |
| 69 | + if [ "${{ github.event_name }}" = "release" ] || [ "${{ github.event.inputs.set_as_latest }}" = "true" ]; then |
| 70 | + echo "LATEST_IMAGE_TAG=unstract/${{ matrix.service_name }}:latest" >> $GITHUB_ENV |
64 | 71 | else |
65 | | - echo "latest=false" >> $GITHUB_OUTPUT |
66 | | - echo "IMAGE_TAGS=unstract/${{ matrix.service_name }}:${{ env.DOCKER_VERSION_TAG }}" >> $GITHUB_ENV |
| 72 | + echo "LATEST_IMAGE_TAG=" >> $GITHUB_ENV |
67 | 73 | fi |
68 | 74 |
|
69 | 75 | # Build and push using Docker Bake |
|
75 | 81 | files: ./docker/docker-compose.build.yaml |
76 | 82 | targets: ${{ matrix.service_name }} |
77 | 83 | push: true |
78 | | - # Context resolved along with docker-compose.build.yaml, ensure resolved path is repo root |
79 | 84 | set: | |
80 | | - *.tags=${{ env.IMAGE_TAGS }} |
| 85 | + *.tags=${{ env.SEMVER_IMAGE_TAG }} |
| 86 | + ${{ env.LATEST_IMAGE_TAG && format('*.tags={0}', env.LATEST_IMAGE_TAG) || '' }} |
81 | 87 | *.context=. |
82 | 88 | *.args.VERSION=${{ env.DOCKER_VERSION_TAG }} |
83 | 89 | *.cache-from=type=gha,scope=${{ matrix.service_name }} |
|
0 commit comments