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 22, 2024
1 parent 90461ec commit ef81e1f
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 7 deletions.
23 changes: 17 additions & 6 deletions .github/actions/archive-artifacts/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ inputs:
required: true
stage:
description: Stage name
default: ${{ github.job }}.${{ github.run_attempt }}
default: ${{ github.job }}
required: true
trunk_token:
description: Trunk token
Expand All @@ -36,12 +36,19 @@ runs:
uses: mikepenz/action-junit-report@v4
with:
annotate_only: true
check_name: ${{ inputs.stage}}
check_name: ${{ inputs.stage }}
report_paths: ${{ inputs.junit-paths }}
job_summary: ${{ job.status != 'success' }} # Only show the summary if the job failed
detailed_summary: true
job_summary: false
continue-on-error: true

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

- name: Upload results
if: inputs.trunk_token && job.status != 'cancelled'
uses: trunk-io/[email protected]
Expand All @@ -64,8 +71,12 @@ runs:
kubectl get zenkodrsink -A -o yaml > /tmp/artifacts/data/${STAGE}/kind-logs/all-zenkodrsinks.log
kind export logs /tmp/artifacts/data/${STAGE}/kind-logs/kind-export
tar zcvf /tmp/artifacts/${{ github.sha }}-${STAGE}-logs-volumes.tgz /tmp/artifacts/data/${STAGE}/kind-logs
mkdir -p /tmp/artifacts/data/${STAGE}/tests
cp -r ${JUNIT_PATHS} /tmp/artifacts/data/${STAGE}/tests
env:
STAGE: ${{ inputs.stage }}
STAGE: ${{ inputs.stage }}.${{ github.run_attempt }}
JUNIT_PATHS: ${{ inputs.junit-paths }}
continue-on-error: true

- name: Dump kafka
Expand Down Expand Up @@ -95,7 +106,7 @@ runs:
kcat -L -b ${KAFKA_SERVICE} -t {} -C -o beginning -e -q -J \
> /tmp/artifacts/data/${STAGE}/kafka-messages-{}.log"
env:
STAGE: ${{ inputs.stage }}
STAGE: ${{ inputs.stage }}.${{ github.run_attempt }}
NAMESPACE: ${{ inputs.zenko-namespace }}
ZENKO_NAME: ${{ inputs.zenko-name }}
continue-on-error: true
Expand Down
53 changes: 52 additions & 1 deletion .github/workflows/end2end.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -640,11 +640,62 @@ jobs:
- end2end-sharded
- end2end-pra
- ctst-end2end-sharded
if: always()
permissions:
checks: write
steps:
- name: Upload final status
uses: scality/actions/[email protected]
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: |
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}" >> $GITHUB_STEP_SUMMARY
echo "SUMMARY=${SUMMARY}" >> $GITHUB_ENV
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'
update_check: ${{ github.run_attempt > 1}} # Update existing aggregate check on retry
job_name: 🧪 Test results # Need to specify the check_name in case of update

0 comments on commit ef81e1f

Please sign in to comment.