Skip to content

Commit 48e18ea

Browse files
authored
fix/ci fixes to fail not skip on dependent steps failing (#356)
* fix: make it so that merge queue will fail even if a dependency failed * fix: make steps fails if preceding one failed, rather than skipping
1 parent b64578a commit 48e18ea

File tree

3 files changed

+34
-1
lines changed

3 files changed

+34
-1
lines changed

.github/workflows/build-guidelines.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,18 @@ jobs:
2020

2121
build:
2222
needs: check_rust_examples
23+
# Always run so that 'build' (the required status check) explicitly fails
24+
# when check_rust_examples fails, rather than being skipped.
25+
# Skipped jobs don't block merge queue, but failed jobs do.
26+
if: always()
2327
runs-on: ubuntu-latest
2428
steps:
29+
- name: Fail if example checks failed
30+
if: needs.check_rust_examples.result != 'success'
31+
run: |
32+
echo "::error::check_rust_examples workflow failed with result: ${{ needs.check_rust_examples.result }}"
33+
echo "One or more Rust example checks did not pass. See the check_rust_examples job for details."
34+
exit 1
2535
- name: Checkout repository
2636
uses: actions/checkout@v4
2737
- name: Install uv

.github/workflows/check-rust-examples.yml

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,8 +233,16 @@ jobs:
233233
test-guidelines-stable:
234234
runs-on: ubuntu-latest
235235
needs: [test-examples, analyze-requirements]
236+
# Always run so that this job explicitly fails when dependencies fail,
237+
# rather than being skipped. Skipped jobs don't block merge queue.
238+
if: always()
236239
name: Test Guidelines (Stable)
237240
steps:
241+
- name: Fail if dependencies failed
242+
if: needs.test-examples.result != 'success' || needs.analyze-requirements.result != 'success'
243+
run: |
244+
echo "::error::Dependency failed - test-examples: ${{ needs.test-examples.result }}, analyze-requirements: ${{ needs.analyze-requirements.result }}"
245+
exit 1
238246
- name: Checkout repository
239247
uses: actions/checkout@v4
240248

@@ -334,9 +342,16 @@ jobs:
334342
test-guidelines-nightly:
335343
runs-on: ubuntu-latest
336344
needs: [test-examples, analyze-requirements]
337-
if: needs.analyze-requirements.outputs.needs_nightly == 'true'
345+
# Always run (when nightly is needed) so that this job explicitly fails
346+
# when dependencies fail, rather than being skipped.
347+
if: always() && needs.analyze-requirements.outputs.needs_nightly == 'true'
338348
name: Test Guidelines (Nightly)
339349
steps:
350+
- name: Fail if dependencies failed
351+
if: needs.test-examples.result != 'success' || needs.analyze-requirements.result != 'success'
352+
run: |
353+
echo "::error::Dependency failed - test-examples: ${{ needs.test-examples.result }}, analyze-requirements: ${{ needs.analyze-requirements.result }}"
354+
exit 1
340355
- name: Checkout repository
341356
uses: actions/checkout@v4
342357

.github/workflows/deploy.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,16 @@ jobs:
1111

1212
deploy:
1313
needs: build
14+
# Always run so that 'deploy' explicitly fails when build fails,
15+
# rather than being skipped. Skipped jobs don't block merge queue.
16+
if: always()
1417
runs-on: ubuntu-latest
1518
steps:
19+
- name: Fail if build failed
20+
if: needs.build.result != 'success'
21+
run: |
22+
echo "::error::build workflow failed with result: ${{ needs.build.result }}"
23+
exit 1
1624
- name: Checkout code
1725
uses: actions/checkout@v3
1826

0 commit comments

Comments
 (0)