Skip to content

Commit c940bf8

Browse files
committed
fix: skip container build too when no app change
1 parent 557fc8a commit c940bf8

1 file changed

Lines changed: 34 additions & 30 deletions

File tree

.github/workflows/release-app.yaml

Lines changed: 34 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,13 @@ env:
1515
REGISTRY: ghcr.io
1616

1717
jobs:
18-
build-image:
19-
uses: ./.github/workflows/_reusable-build.yaml
20-
with:
21-
tags: ${{ github.sha }}
22-
secrets: inherit
23-
24-
release:
25-
needs: build-image
18+
detect:
2619
runs-on: ubuntu-24.04
27-
permissions:
28-
contents: write
29-
packages: write
30-
id-token: write
31-
20+
outputs:
21+
skip: ${{ steps.detect.outputs.skip }}
22+
app_version: ${{ steps.detect.outputs.app_version }}
3223
steps:
33-
- name: Checkout repository
34-
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
24+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
3525
with:
3626
fetch-depth: 0
3727

@@ -61,56 +51,70 @@ jobs:
6151
6252
echo "skip=false" >> "$GITHUB_OUTPUT"
6353
54+
build-image:
55+
needs: detect
56+
if: ${{ needs.detect.outputs.skip == 'false' }}
57+
uses: ./.github/workflows/_reusable-build.yaml
58+
with:
59+
tags: ${{ github.sha }}
60+
secrets: inherit
61+
62+
release:
63+
needs: [detect, build-image]
64+
if: ${{ needs.detect.outputs.skip == 'false' }}
65+
runs-on: ubuntu-24.04
66+
permissions:
67+
contents: write
68+
packages: write
69+
id-token: write
70+
71+
steps:
72+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
73+
with:
74+
fetch-depth: 0
75+
6476
- name: Setup ORAS
65-
if: steps.detect.outputs.skip == 'false'
6677
uses: oras-project/setup-oras@38de303aac69abb66f3e6255b7198bff35f323e3 # v2.0.0
6778

6879
- name: Log in to GHCR
69-
if: steps.detect.outputs.skip == 'false'
7080
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
7181
with:
7282
registry: ${{ env.REGISTRY }}
7383
username: ${{ github.actor }}
7484
password: ${{ secrets.GITHUB_TOKEN }}
7585

7686
- name: Tag release
77-
if: steps.detect.outputs.skip == 'false'
7887
run: |
7988
SRC="${{ env.REGISTRY }}/${{ github.repository }}:${{ github.sha }}"
80-
DST="${{ env.REGISTRY }}/${{ github.repository }}:${{ steps.detect.outputs.app_version }}"
89+
DST="${{ env.REGISTRY }}/${{ github.repository }}:${{ needs.detect.outputs.app_version }}"
8190
LATEST="${{ env.REGISTRY }}/${{ github.repository }}:latest"
8291
oras copy "$SRC" "$DST"
8392
oras copy "$SRC" "$LATEST"
8493
8594
- name: Setup Cosign
86-
if: steps.detect.outputs.skip == 'false'
8795
uses: sigstore/cosign-installer@6f9f17788090df1f26f669e9d70d6ae9567deba6 # v4.1.2
8896

8997
- name: Sign the container image
90-
if: steps.detect.outputs.skip == 'false'
9198
run: |
92-
IMAGE="${{ env.REGISTRY }}/${{ github.repository }}:${{ steps.detect.outputs.app_version }}"
99+
IMAGE="${{ env.REGISTRY }}/${{ github.repository }}:${{ needs.detect.outputs.app_version }}"
93100
DIGEST=$(oras resolve "$IMAGE")
94101
cosign sign --yes "${{ env.REGISTRY }}/${{ github.repository }}@${DIGEST}"
95102
96103
- name: Get release notes
97-
if: steps.detect.outputs.skip == 'false'
98-
run: make release-notes TAG="${{ steps.detect.outputs.app_version }}" > .release_notes
104+
run: make release-notes TAG="${{ needs.detect.outputs.app_version }}" > .release_notes
99105

100106
- name: Create release
101-
if: steps.detect.outputs.skip == 'false'
102107
env:
103108
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
104109
run: |
105-
gh release create "${{ steps.detect.outputs.app_version }}" \
110+
gh release create "${{ needs.detect.outputs.app_version }}" \
106111
--notes-file .release_notes \
107-
--title "${{ steps.detect.outputs.app_version }}" \
112+
--title "${{ needs.detect.outputs.app_version }}" \
108113
--draft
109114
110115
- name: Create git tag
111-
if: steps.detect.outputs.skip == 'false'
112116
run: |
113117
git config user.name "github-actions[bot]"
114118
git config user.email "github-actions[bot]@users.noreply.github.com"
115-
git tag "${{ steps.detect.outputs.app_version }}"
116-
git push origin "${{ steps.detect.outputs.app_version }}"
119+
git tag "${{ needs.detect.outputs.app_version }}"
120+
git push origin "${{ needs.detect.outputs.app_version }}"

0 commit comments

Comments
 (0)