1+ name : Generate report reference documentation
2+
3+ on :
4+ push :
5+ branches :
6+ - main
7+ paths :
8+ - ' results/**' # Only run results have been updates
9+ - ' !results/*.md' # Ignore when report reference documentation itself changes
10+ - ' .github/workflows/report-reference-documentation.yml' # or when this file was changed
11+ pull_request :
12+ branches :
13+ - main
14+ paths :
15+ - ' results/**' # Only run results have been updates
16+ - ' !results/*.md' # Ignore when report reference documentation itself changes
17+ - ' .github/workflows/report-reference-documentation.yml' # or when this file was changed
18+
19+ jobs :
20+ reports :
21+ runs-on : ubuntu-latest
22+ env :
23+ CI_COMMIT_MESSAGE : Automated report reference document generation (CI)
24+ CI_COMMIT_AUTHOR : ${{ github.event.repository.name }} Continuous Integration
25+
26+ steps :
27+ - name : Checkout git repository
28+ uses : actions/checkout@v4
29+ with :
30+ token : ${{ secrets.WORKFLOW_GIT_ACCESS_TOKEN }}
31+
32+ - name : Generate report reference document
33+ working-directory : results
34+ run : |
35+ ./../scripts/documentation/generateReportReferences.sh
36+
37+ - name : Use git to detect changes in the regenerated documenta and set generated_document_changed
38+ run : git diff --quiet || echo "generated_document_changed=true" >> $GITHUB_ENV
39+
40+ - name : Display generated_document_changed
41+ run : echo "generated_document_changed=${{ env.generated_document_changed}}"
42+
43+ - name : Archive generated report reference document
44+ if : env.generated_document_changed
45+ uses : actions/upload-artifact@v4
46+ with :
47+ name : report-reference-document
48+ path : ./results/*.md
49+ if-no-files-found : error
50+ retention-days : 5
51+
52+ - name : Commit generated report reference document if there were changes
53+ # Only run when a pull request gets merged or a commit is pushed to the main branch.
54+ # And only run when the generated document changed to avoid an empty commit or an error while committing.
55+ if : github.event_name == 'push' && env.generated_document_changed
56+ run : |
57+ git config --global user.name '${{ env.CI_COMMIT_AUTHOR }}'
58+ git config --global user.email '[email protected] ' 59+ set -o errexit -o pipefail -o xtrace
60+ git add ./results/*.md
61+ git status
62+ git commit -m "${{ env.CI_COMMIT_MESSAGE }}"
63+ git status
64+ git push --verbose
0 commit comments