@@ -155,34 +155,50 @@ jobs:
155155 contents : read
156156 strategy :
157157 matrix :
158- type : [dev, pre-release, release]
159- if : >
160- (matrix.type == 'dev' && github.ref_name == 'dev')
161- || (matrix.type == 'pre-release' && github.event_name == 'release' && github.event.release.prerelease)
162- || (matrix.type == 'release' && github.event_name == 'release' && !github.event.release.prerelease)
158+ include :
159+ - type : dev
160+ # Only enable when pushing to the dev branch
161+ enabled : ${{ github.ref_name == 'dev' }}
162+ - type : pre-release
163+ # Only enable when a release event is published and it's a prerelease
164+ enabled : ${{ github.event_name == 'release' && github.event.release.prerelease }}
165+ - type : release
166+ # Only enable when a release event is published and it's NOT a prerelease
167+ enabled : ${{ github.event_name == 'release' && !github.event.release.prerelease }}
163168 steps :
169+ - name : Exit early if deployment is not enabled
170+ if : ${{ !matrix.enabled }}
171+ run : |
172+ echo "Skipping deployment for matrix type '${{ matrix.type }}' because conditions are not met."
173+ exit 0
174+
164175 - name : Checkout repository
176+ if : ${{ matrix.enabled }}
165177 uses : actions/checkout@v4
166178
167179 - name : Set up Docker Buildx
180+ if : ${{ matrix.enabled }}
168181 uses : docker/setup-buildx-action@v3
169182
170183 - name : Login to GitHub Container Registry
184+ if : ${{ matrix.enabled }}
171185 uses : docker/login-action@v3
172186 with :
173187 registry : ghcr.io
174188 username : ${{ github.repository_owner }}
175189 password : ${{ secrets.GITHUB_TOKEN }}
176190
177191 - name : Determine tags
192+ if : ${{ matrix.enabled }}
178193 id : tags
179194 uses : docker/metadata-action@v5
180195 with :
181196 images : ghcr.io/${{ github.repository }}
182197 tags : |
183- type=raw,enable=${{ matrix.type == 'dev' && github.ref_name == 'dev' || matrix.type == 'pre-release' && github.event_name == 'release' && github.event.release.prerelease || matrix.type == 'release' && github.event_name == 'release' && !github.event.release.prerelease }}, value=${{ matrix.type == 'dev' && 'nightly' || matrix.type == 'pre-release' && 'pre' || matrix.type == 'release' && 'latest' }}
198+ type=raw,value=${{ matrix.type == 'dev' && 'nightly' || matrix.type == 'pre-release' && 'pre' || matrix.type == 'release' && 'latest' }}
184199
185200 - name : Build and push
201+ if : ${{ matrix.enabled }}
186202 uses : docker/build-push-action@v6
187203 with :
188204 context : .
0 commit comments