1818 # Run every Saturday morning: https://crontab.guru/#15_3_*_*_6
1919 - cron : ' 15 3 * * 6'
2020 pull_request :
21- paths :
22- - ' .github/workflows/build.yaml'
23- - ' rust-toolchain.toml'
24- - ' .dockerignore'
25- - ' deploy/**'
26- - ' .cargo/**'
27- - ' docker/**'
28- - ' Cargo.*'
29- - ' *.rs'
21+ # Do not limit by paths. This workflow contains a required job.
3022 merge_group :
3123
3224env :
3931 CARGO_TERM_COLOR : always
4032
4133jobs :
34+ # This workflow contains a "required job", and GitHub Actions isn't clever
35+ # enough to detect that it should be skipped, and therefore pass (like they
36+ # allow for skipping jobs in a workflow).
37+ # Therefore, we have to move path filters/globs down to an actual job, and
38+ # emit an output that can be used to skip irrelevant jobs.
39+ detect-changes :
40+ name : Detect relevant changed files
41+ runs-on : ubuntu-latest
42+ steps :
43+ - name : Checkout Repository
44+ uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
45+ with :
46+ persist-credentials : false
47+ fetch-depth : 0
48+
49+ - name : Check for changed files
50+ id : check
51+ uses : stackabletech/actions/detect-changes@babe44d7b1db87f8e7731c011151d22a8a374191 # v0.12.0
52+ with :
53+ patterns : |
54+ - '.github/workflows/build.yaml'
55+ - 'rust-toolchain.toml'
56+ - '.dockerignore'
57+ - 'deploy/**'
58+ - '.cargo/**'
59+ - 'docker/**'
60+ - 'Cargo.*'
61+ - '*.rs'
62+ outputs :
63+ detected : ${{ steps.check.outputs.detected }}
64+
4265 cargo-udeps :
4366 name : Run cargo-udeps
67+ if : needs.detect-changes.outputs.detected == 'true'
68+ needs : [detect-changes]
4469 runs-on : ubuntu-latest
4570 env :
4671 RUSTC_BOOTSTRAP : 1
76101
77102 build-container-image :
78103 name : Build/Publish ${{ matrix.runner.arch }} Image
79- if : github.event_name != 'merge_group'
104+ if : (github.event_name != 'merge_group') && needs.detect-changes.outputs.detected == 'true'
105+ needs : [detect-changes]
80106 permissions :
81107 id-token : write
82108 strategy :
@@ -140,15 +166,15 @@ jobs:
140166
141167 - name : Build Container Image
142168 id : build
143- uses : stackabletech/actions/build-container-image@29bea1b451c0c2e994bd495969286f95bf49ed6a # v0.11 .0
169+ uses : stackabletech/actions/build-container-image@babe44d7b1db87f8e7731c011151d22a8a374191 # v0.12 .0
144170 with :
145171 image-name : ${{ env.OPERATOR_NAME }}
146172 image-index-manifest-tag : ${{ steps.version.outputs.OPERATOR_VERSION }}
147173 build-arguments : VERSION=${{ steps.version.outputs.OPERATOR_VERSION }}
148174 container-file : docker/Dockerfile
149175
150176 - name : Publish Container Image
151- uses : stackabletech/actions/publish-image@29bea1b451c0c2e994bd495969286f95bf49ed6a # v0.11 .0
177+ uses : stackabletech/actions/publish-image@babe44d7b1db87f8e7731c011151d22a8a374191 # v0.12 .0
152178 with :
153179 image-registry-uri : oci.stackable.tech
154180 image-registry-username : robot$sdp+github-action-build
@@ -159,8 +185,9 @@ jobs:
159185
160186 publish-index-manifest :
161187 name : Publish/Sign ${{ needs.build-container-image.outputs.operator-version }} Index
162- if : github.event_name != 'merge_group'
188+ if : ( github.event_name != 'merge_group') && needs.detect-changes.outputs.detected == 'true '
163189 needs :
190+ - detect-changes
164191 - build-container-image
165192 permissions :
166193 id-token : write
@@ -172,7 +199,7 @@ jobs:
172199 persist-credentials : false
173200
174201 - name : Publish and Sign Image Index
175- uses : stackabletech/actions/publish-image-index-manifest@29bea1b451c0c2e994bd495969286f95bf49ed6a # v0.11 .0
202+ uses : stackabletech/actions/publish-image-index-manifest@babe44d7b1db87f8e7731c011151d22a8a374191 # v0.12 .0
176203 with :
177204 image-registry-uri : oci.stackable.tech
178205 image-registry-username : robot$sdp+github-action-build
@@ -182,8 +209,9 @@ jobs:
182209
183210 publish-helm-chart :
184211 name : Package/Publish ${{ needs.build-container-image.outputs.operator-version }} Helm Chart
185- if : github.event_name != 'merge_group'
212+ if : ( github.event_name != 'merge_group') && needs.detect-changes.outputs.detected == 'true '
186213 needs :
214+ - detect-changes
187215 - build-container-image
188216 permissions :
189217 id-token : write
@@ -196,7 +224,7 @@ jobs:
196224 submodules : recursive
197225
198226 - name : Package, Publish, and Sign Helm Chart
199- uses : stackabletech/actions/publish-helm-chart@29bea1b451c0c2e994bd495969286f95bf49ed6a # v0.11 .0
227+ uses : stackabletech/actions/publish-helm-chart@babe44d7b1db87f8e7731c011151d22a8a374191 # v0.12 .0
200228 with :
201229 chart-registry-uri : oci.stackable.tech
202230 chart-registry-username : robot$sdp-charts+github-action-build
@@ -208,8 +236,9 @@ jobs:
208236
209237 openshift-preflight-check :
210238 name : Run OpenShift Preflight Check for ${{ needs.build-container-image.outputs.operator-version }}-${{ matrix.arch }}
211- if : github.event_name != 'merge_group'
239+ if : ( github.event_name != 'merge_group') && needs.detect-changes.outputs.detected == 'true '
212240 needs :
241+ - detect-changes
213242 - build-container-image
214243 - publish-index-manifest
215244 strategy :
@@ -221,7 +250,7 @@ jobs:
221250 runs-on : ubuntu-latest
222251 steps :
223252 - name : Run OpenShift Preflight Check
224- uses : stackabletech/actions/run-openshift-preflight@29bea1b451c0c2e994bd495969286f95bf49ed6a # v0.11 .0
253+ uses : stackabletech/actions/run-openshift-preflight@babe44d7b1db87f8e7731c011151d22a8a374191 # v0.12 .0
225254 with :
226255 image-index-uri : oci.stackable.tech/sdp/${{ env.OPERATOR_NAME }}:${{ needs.build-container-image.outputs.operator-version }}
227256 image-architecture : ${{ matrix.arch }}
@@ -243,8 +272,9 @@ jobs:
243272
244273 notify :
245274 name : Failure Notification
246- if : (failure() || github.run_attempt > 1) && github.event_name != 'merge_group'
275+ if : (failure() || github.run_attempt > 1) && github.event_name != 'merge_group' && needs.detect-changes.outputs.detected == 'true'
247276 needs :
277+ - detect-changes
248278 - build-container-image
249279 - publish-index-manifest
250280 - publish-helm-chart
@@ -256,7 +286,7 @@ jobs:
256286 persist-credentials : false
257287
258288 - name : Send Notification
259- uses : stackabletech/actions/send-slack-notification@29bea1b451c0c2e994bd495969286f95bf49ed6a # v0.11 .0
289+ uses : stackabletech/actions/send-slack-notification@babe44d7b1db87f8e7731c011151d22a8a374191 # v0.12 .0
260290 with :
261291 publish-helm-chart-result : ${{ needs.publish-helm-chart.result }}
262292 publish-manifests-result : ${{ needs.publish-index-manifest.result }}
0 commit comments