Skip to content

Commit

Permalink
Add test report once at the end of the build
Browse files Browse the repository at this point in the history
Issue: ZENKO-4876
  • Loading branch information
francoisferrand committed Oct 4, 2024
1 parent 94dc966 commit c699212
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 4 deletions.
9 changes: 9 additions & 0 deletions .github/actions/archive-artifacts/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,19 @@ runs:
- name: Publish test report
uses: mikepenz/action-junit-report@v4
with:
annotate_only: true
check_name: ${{ inputs.stage}}
job_summary: false
report_paths: ${{ inputs.junit-paths }}
continue-on-error: true

- name: Upload test reports
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.stage}}-test-report
path: ${{ inputs.junit-paths }}
retention-days: 5

- name: Upload results
if: inputs.trunk_token && job.status != 'cancelled'
uses: trunk-io/analytics-uploader@v1.4.0
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/debug-wait/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ runs:
using: composite
steps:
- name: "Debug: SSH to runner"
uses: scality/actions/action-ssh-to-runner@1.8.0
uses: scality/actions/action-ssh-to-runner@1.9.0
continue-on-error: true
with:
tmate-server-host: ${{ env.TMATE_SERVER_HOST }}
tmate-server-port: ${{ env.TMATE_SERVER_PORT }}
tmate-server-rsa-fingerprint: ${{ env.TMATE_SERVER_RSA_FINGERPRINT }}
tmate-server-ed25519-fingerprint: ${{ env.TMATE_SERVER_ED25519_FINGERPRINT }}
if: job.status == 'failure' && runner.debug == '1'
if: runner.debug == '1'
60 changes: 58 additions & 2 deletions .github/workflows/end2end.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -416,6 +416,7 @@ jobs:
- name: Debug wait
uses: ./.github/actions/debug-wait
timeout-minutes: 60
if: failure()
- name: Archive and publish artifacts
uses: ./.github/actions/archive-artifacts
with:
Expand Down Expand Up @@ -475,6 +476,7 @@ jobs:
- name: Debug wait
uses: ./.github/actions/debug-wait
timeout-minutes: 60
if: failure()
- name: Archive and publish artifacts
uses: ./.github/actions/archive-artifacts
with:
Expand Down Expand Up @@ -526,6 +528,7 @@ jobs:
- name: Debug wait
uses: ./.github/actions/debug-wait
timeout-minutes: 60
if: failure()
- name: Archive and publish artifacts
uses: ./.github/actions/archive-artifacts
with:
Expand Down Expand Up @@ -565,6 +568,7 @@ jobs:
- name: Debug wait
uses: ./.github/actions/debug-wait
timeout-minutes: 60
if: failure()
- name: Archive and publish artifacts
uses: ./.github/actions/archive-artifacts
with:
Expand Down Expand Up @@ -611,6 +615,7 @@ jobs:
- name: Debug wait
uses: ./.github/actions/debug-wait
timeout-minutes: 60
if: failure()
- name: Archive and publish artifacts
uses: ./.github/actions/archive-artifacts
with:
Expand All @@ -635,11 +640,62 @@ jobs:
- end2end-sharded
- end2end-pra
- ctst-end2end-sharded
if: always()
permissions:
checks: write
steps:
- name: Upload final status
uses: scality/actions/upload_final_status@1.8.0
uses: scality/actions/upload_final_status@1.9.0
with:
ARTIFACTS_USER: ${{ secrets.ARTIFACTS_USER }}
ARTIFACTS_PASSWORD: ${{ secrets.ARTIFACTS_PASSWORD }}
JOBS_RESULTS: ${{ join(needs.*.result) }}
if: always()

- name: Download all workflow run artifacts
uses: actions/download-artifact@v4

- name: List test reports
run: |
REPORT_PATHS=
CHECK_NAMES=
for REPORT in *-test-report ; do
REPORT_PATHS="${REPORT_PATHS}\n${REPORT}/*.xml"
CHECK_NAMES="${CHECK_NAMES}\n${REPORT%-test-report}"
done
echo -e "REPORT_PATHS<<EOF$REPORT_PATHS\nEOF" >> "$GITHUB_ENV"
echo -e "CHECK_NAMES<<EOF$CHECK_NAMES\nEOF" >> "$GITHUB_ENV"
- name: Generate test summary
uses: mikepenz/action-junit-report@v4
id: summary
with:
annotate_only: true # Do not generate a Check or summary
check_retries: true # Check for retries
job_summary: false # No job summary
report_paths: ${{ env.REPORT_PATHS }}
check_name: ${{ env.CHECK_NAMES }}

- name: Publish summary
run:
set -x

NO_ERROR='<tr><td>-</td><td>No test annotations available</td><td>-</td></tr>'
DETAILED_SUMMARY=${DETAILED_SUMMARY//$NO_ERROR}
FLAKY_SUMMARY=${FLAKY_SUMMARY//$NO_ERROR}
SUMMARY="${SUMMARY}${DETAILED_SUMMARY}${FLAKY_SUMMARY}"

echo "SUMMARY=${SUMMARY}" >> "$GITHUB_ENV"
echo "${SUMMARY}" >> $GITHUB_STEP_SUMMARY
env:
SUMMARY: ${{ steps.summary.outputs.summary }}
DETAILED_SUMMARY: ${{ steps.summary.outputs.detailed_summary }}
FLAKY_SUMMARY: ${{ steps.summary.outputs.flaky_summary }}

- name: Publish check with test results
uses: mikepenz/action-junit-report@v4
with:
check_name: 🧪 Test results # Create a new aggregate check
job_summary: false # No job summary
summary: ${{ env.SUMMARY }} # Use the summary from the previous step (in the check)
report_paths: '*-test-report/*.xml'

0 comments on commit c699212

Please sign in to comment.