Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci(build-test-tidy): introduce success condition jobs #9769

Merged
merged 15 commits into from
Dec 24, 2024
Prev Previous commit
Next Next commit
ex
Signed-off-by: M. Fatih Cırıt <mfc@autoware.org>
xmfcx committed Dec 24, 2024
commit dd65c96deca4d96735593d0a61b47d3f5c5d0adb
46 changes: 46 additions & 0 deletions .github/actions/evaluate-job-result/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Evaluate Job Result
description: Evaluates the result of a job and updates the summary.
inputs:
job_result:
description: Result of the job to evaluate (e.g., success, failure, skipped)
required: true
type: string
job_name:
description: Name of the job to evaluate
required: true
type: string
expected_results:
description: Comma-separated list of acceptable results (e.g., success,skipped)
required: true
type: string
outputs:
failed:
description: Indicates if the job failed
type: boolean
value: ${{ steps.evaluate.outputs.failed }}

runs:
using: composite
steps:
- name: Evaluate Job Result
id: evaluate
shell: bash
run: |
JOB_RESULT="${{ inputs.job_result }}"
IFS=',' read -ra EXPECTED <<< "${{ inputs.expected_results }}"
SUMMARY_LINE=""
FAILED=false

for RESULT in "${EXPECTED[@]}"; do
if [[ "$JOB_RESULT" == "$RESULT" ]]; then
SUMMARY_LINE="- ${{ inputs.job_name }}: Success ✅"
echo "$SUMMARY_LINE" >> "$GITHUB_STEP_SUMMARY"
echo "failed=false" >> "$GITHUB_OUTPUT"
exit 0
fi
done

# If no expected result matched
echo "::error::${{ inputs.job_name }} failed. ❌"
SUMMARY_LINE="- ${{ inputs.job_name }}: Failed ❌" >> "$GITHUB_STEP_SUMMARY"
echo "failed=true" >> "$GITHUB_OUTPUT"
35 changes: 29 additions & 6 deletions .github/workflows/build-test-tidy-pr.yaml
Original file line number Diff line number Diff line change
@@ -65,12 +65,35 @@ jobs:
if: ${{ always() }}
runs-on: ubuntu-latest
steps:
- name: Check build-and-test success
if: ${{ needs.build-and-test-differential.result == 'success' && (needs.build-and-test-differential-cuda.result == 'success' || needs.build-and-test-differential-cuda.result == 'skipped') }}
run: echo "build-test-pr succeeded."
- name: Fail if conditions not met
if: ${{ !(needs.build-and-test-differential.result == 'success' && (needs.build-and-test-differential-cuda.result == 'success' || needs.build-and-test-differential-cuda.result == 'skipped')) }}
run: exit 1
- name: Initialize Summary
run: echo "### Build Test PR Results" > $GITHUB_STEP_SUMMARY
shell: bash

- name: Evaluate build-and-test-differential
id: eval_diff
uses: ./.github/actions/evaluate-job-result
with:
job_result: ${{ needs.build-and-test-differential.result }}
job_name: build-and-test-differential
expected_results: success

- name: Evaluate build-and-test-differential-cuda
id: eval_cuda
uses: ./.github/actions/evaluate-job-result
with:
job_result: ${{ needs.build-and-test-differential-cuda.result }}
job_name: build-and-test-differential-cuda
expected_results: success,skipped

- name: Final Status
run: |
if [[ "${{ steps.eval_diff.outputs.failed }}" == "true" || "${{ steps.eval_cuda.outputs.failed }}" == "true" ]]; then
echo "Some checks failed. ❌"
exit 1
else
echo "::notice::All checks passed successfully! ✅"
fi
shell: bash

clang-tidy-differential:
needs: