Upload Coverage to Teamscale #756
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Upload Coverage to Teamscale | |
| permissions: | |
| actions: read | |
| # This is a separate workflow from pull_request.yml because it needs to run with access | |
| # to the secrets | |
| on: | |
| workflow_run: | |
| workflows: [Pull Request] | |
| types: | |
| - completed | |
| jobs: | |
| upload_coverage: | |
| runs-on: ubuntu-latest | |
| if: ${{ github.event.workflow_run.conclusion == 'success' }} | |
| steps: | |
| # This checks out the latest commit on main, not teh PRs head | |
| # This is needed to get the teamscale-upload action | |
| - name: Checkout sources | |
| uses: actions/checkout@v4.2.2 | |
| - name: 'Download artifact' | |
| uses: actions/github-script@v7 | |
| with: | |
| script: | | |
| let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| run_id: context.payload.workflow_run.id, | |
| }); | |
| let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => { | |
| return artifact.name == "coverage-report" | |
| })[0]; | |
| let download = await github.rest.actions.downloadArtifact({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| artifact_id: matchArtifact.id, | |
| archive_format: 'zip', | |
| }); | |
| const fs = require('fs'); | |
| const path = require('path'); | |
| const temp = '${{ runner.temp }}/artifacts'; | |
| if (!fs.existsSync(temp)){ | |
| fs.mkdirSync(temp); | |
| } | |
| fs.writeFileSync(path.join(temp, 'coverage-report.zip'), Buffer.from(download.data)); | |
| - name: 'Unzip artifact' | |
| run: unzip "${{ runner.temp }}/artifacts/coverage-report.zip" -d "${{ runner.temp }}/artifacts" | |
| - name: 'Upload coverage' | |
| uses: ./actions/teamscale-upload | |
| with: | |
| partition: 'CI Tests' | |
| revision: ${{ github.event.workflow_run.head_sha }} | |
| files: "${{ runner.temp}}/artifacts/codeCoverageReport.xml" | |
| teamscaleKey: ${{ secrets.TEAMSCALE_ACCESS_KEY }} |