|
19 | 19 | runs-on: ubuntu-latest |
20 | 20 | outputs: |
21 | 21 | docker_tag: ${{ steps.generate_tag.outputs.docker_tag }} |
| 22 | + docker_release_tag: ${{ steps.detect_release_tag.outputs.release_tag }} |
22 | 23 | steps: |
23 | 24 | - uses: actions/checkout@v4 |
| 25 | + with: |
| 26 | + fetch-depth: 0 |
24 | 27 |
|
25 | 28 | - name: Set up environment variables |
26 | 29 | run: | |
|
37 | 40 | echo "docker_tag=${{ env.BRANCH_NAME }}" >> $GITHUB_OUTPUT |
38 | 41 | fi |
39 | 42 |
|
| 43 | + - name: Detect release tag on HEAD |
| 44 | + id: detect_release_tag |
| 45 | + run: | |
| 46 | + TAG_ON_HEAD=$(git tag --points-at HEAD | head -n 1 || true) |
| 47 | + if [[ -n "$TAG_ON_HEAD" && "$IS_TAG" != "tag" ]]; then |
| 48 | + echo "release_tag=$TAG_ON_HEAD" >> $GITHUB_OUTPUT |
| 49 | + else |
| 50 | + echo "release_tag=" >> $GITHUB_OUTPUT |
| 51 | + fi |
| 52 | +
|
40 | 53 | build-deeploy: |
41 | 54 | name: Build Deploy Image |
42 | 55 | needs: [prepare] |
@@ -132,13 +145,31 @@ jobs: |
132 | 145 | env: |
133 | 146 | OWNER: "${{ github.repository_owner }}" |
134 | 147 |
|
| 148 | + - name: Prepare manifest tags |
| 149 | + id: manifest_tags |
| 150 | + run: | |
| 151 | + OWNER_LC_VALUE=${OWNER,,} |
| 152 | + { |
| 153 | + echo "tags<<EOF" |
| 154 | + echo "ghcr.io/${OWNER_LC_VALUE}/deeploy:latest," |
| 155 | + if [[ -n "${RELEASE_TAG}" ]]; then |
| 156 | + echo "ghcr.io/${OWNER_LC_VALUE}/deeploy:${DOCKER_TAG}," |
| 157 | + echo "ghcr.io/${OWNER_LC_VALUE}/deeploy:${RELEASE_TAG}" |
| 158 | + else |
| 159 | + echo "ghcr.io/${OWNER_LC_VALUE}/deeploy:${DOCKER_TAG}" |
| 160 | + fi |
| 161 | + echo "EOF" |
| 162 | + } >> $GITHUB_OUTPUT |
| 163 | + env: |
| 164 | + OWNER: ${{ github.repository_owner }} |
| 165 | + DOCKER_TAG: ${{ needs.prepare.outputs.docker_tag }} |
| 166 | + RELEASE_TAG: ${{ needs.prepare.outputs.docker_release_tag }} |
| 167 | + |
135 | 168 | - name: Merge Deeploy Images |
136 | 169 | uses: Noelware/docker-manifest-action@v1 |
137 | 170 | with: |
138 | 171 | inputs: | |
139 | 172 | ghcr.io/${{ env.OWNER_LC }}/deeploy@${{ needs.build-deeploy.outputs.digest-amd64 }}, |
140 | 173 | ghcr.io/${{ env.OWNER_LC }}/deeploy@${{ needs.build-deeploy.outputs.digest-arm64 }} |
141 | | - tags: | |
142 | | - ghcr.io/${{ env.OWNER_LC }}/deeploy:latest, |
143 | | - ghcr.io/${{ env.OWNER_LC }}/deeploy:${{ needs.prepare.outputs.docker_tag }} |
| 174 | + tags: ${{ steps.manifest_tags.outputs.tags }} |
144 | 175 | push: true |
0 commit comments