Skip to content

Commit 3814f63

Browse files
[CI] Refactor processing of E2E failures (#19684)
Use a separate step so that the logs would be available if the workflow was cancelled. Also changes the "failing" step to only show the names of the failing tests instead of the whole e2e run log (that is still available in a separate foldable step).
1 parent 7cf81c6 commit 3814f63

File tree

2 files changed

+38
-14
lines changed

2 files changed

+38
-14
lines changed

devops/actions/run-tests/e2e/action.yml

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,18 +60,31 @@ runs:
6060
run: |
6161
cmake -GNinja -B./build-e2e -S./llvm/sycl/test-e2e -DCMAKE_CXX_COMPILER="${{ inputs.sycl_compiler || '$(which clang++)'}}" -DLLVM_LIT="$PWD/llvm/llvm/utils/lit/lit.py" ${{ steps.cmake_opts.outputs.opts }}
6262
- name: SYCL End-to-end tests
63-
shell: bash {0}
63+
id: run_e2e
64+
continue-on-error: true
65+
shell: bash
6466
env:
6567
LIT_OPTS: -v --no-progress-bar --show-unsupported --show-pass --show-xfail --max-time 3600 --time-tests --param print_features=True --param test-mode=${{ inputs.testing_mode }} --param sycl_devices=${{ inputs.target_devices }} ${{ inputs.extra_lit_opts }}
6668
run: |
6769
ninja -C build-e2e check-sycl-e2e > e2e.log 2>&1
68-
exit_code=$?
70+
# Two steps below are duplicated between Lin/Win actions, updates must change both
71+
- name: E2E logs
72+
if: ${{ always() }}
73+
shell: bash
74+
run: |
75+
echo "::group::Show Full E2E Log"
6976
cat e2e.log
70-
if [ $exit_code -ne 0 ]; then
71-
# This is duplicated between lin/win, updates must change both.
77+
echo "::endgroup::"
78+
- name: Report E2E Failures
79+
if: steps.run_e2e.outcome != 'success'
80+
shell: bash
81+
# For some reason Github uses the first line from the `run: |` section for
82+
# the folded entry when displaying instead of this step's name.
83+
run: |
84+
# Report E2E Failures
7285
awk '/^Failed Tests|Unexpectedly Passed Tests|Unresolved tests|Timed Out Tests|Testing Time/{flag=1}/FAILED: CMakeFiles/{flag=0}flag' e2e.log >> $GITHUB_STEP_SUMMARY
73-
fi
74-
exit $exit_code
86+
awk '/^Failed Tests|Unexpectedly Passed Tests|Unresolved tests|Timed Out Tests|Testing Time/{flag=1}/FAILED: CMakeFiles/{flag=0}flag' e2e.log
87+
exit 1
7588
7689
- name: Pack E2E binaries
7790
if: ${{ always() && !cancelled() && inputs.binaries_artifact != '' && inputs.testing_mode != 'run-only'}}

devops/actions/run-tests/windows/e2e/action.yml

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -72,20 +72,31 @@ runs:
7272
run: ls build-e2e > e2econf_files.txt
7373

7474
- name: Run End-to-End tests
75-
shell: bash {0}
75+
id: run_e2e
76+
continue-on-error: true
77+
shell: bash
7678
env:
7779
LIT_OPTS: -v --no-progress-bar --show-unsupported --show-pass --show-xfail --max-time ${{ inputs.e2e_testing_mode == 'run-only' && 1200 || 3600 }} --time-tests --param print_features=True --param test-mode=${{ inputs.testing_mode }} --param sycl_devices=${{ inputs.target_devices }} ${{ inputs.extra_lit_opts }}
7880
run: |
79-
# Run E2E tests.
8081
cmake --build build-e2e --target check-sycl-e2e > e2e.log 2>&1
81-
82-
exit_code=$?
82+
# Two steps below are duplicated between Lin/Win actions, updates must change both
83+
- name: E2E logs
84+
if: ${{ always() }}
85+
shell: bash
86+
run: |
87+
echo "::group::Show Full E2E Log"
8388
cat e2e.log
84-
if [ $exit_code -ne 0 ]; then
85-
# This is duplicated between lin/win, updates must change both.
89+
echo "::endgroup::"
90+
- name: Report E2E Failures
91+
if: steps.run_e2e.outcome != 'success'
92+
shell: bash
93+
# For some reason Github uses the first line from the `run: |` section for
94+
# the folded entry when displaying instead of this step's name.
95+
run: |
96+
# Report E2E Failures
8697
awk '/^Failed Tests|Unexpectedly Passed Tests|Unresolved tests|Timed Out Tests|Testing Time/{flag=1}/FAILED: CMakeFiles/{flag=0}flag' e2e.log >> $GITHUB_STEP_SUMMARY
87-
fi
88-
exit $exit_code
98+
awk '/^Failed Tests|Unexpectedly Passed Tests|Unresolved tests|Timed Out Tests|Testing Time/{flag=1}/FAILED: CMakeFiles/{flag=0}flag' e2e.log
99+
exit 1
89100
90101
# Github CI doesn't support containers on Windows, so we cannot guarantee
91102
# that paths are the same between building and running systems. To avoid

0 commit comments

Comments
 (0)