-
Notifications
You must be signed in to change notification settings - Fork 1
54 lines (50 loc) · 1.99 KB
/
report-coverage.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
name: Report Elixir Coverage
on:
workflow_run:
workflows:
- Elixir CI
types:
- completed
permissions:
pull-requests: write
jobs:
report-coverage:
if: ${{ github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
steps:
- run: mkdir -p ${{ runner.temp }}/cover
- run: echo Fetching artifacts for ${{ github.event.workflow_run.id }}, event name ${{ github.event_name }}, triggered by ${{ github.event.workflow_run.event }}
- name: Download artifact
uses: actions/[email protected]
with:
script: |
var artifacts = await github.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: ${{github.event.workflow_run.id }},
});
var matchArtifact = artifacts.data.artifacts.filter((artifact) => {
return artifact.name == "elixir-lcov"
})[0];
var download = await github.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: 'zip',
});
var fs = require('fs');
fs.writeFileSync('${{ runner.temp }}/cover/elixir-lcov.zip', Buffer.from(download.data));
- working-directory: ${{ runner.temp }}/cover
run: |
unzip elixir-lcov.zip
echo "PR_SHA=$(cat PR_SHA)" >> $GITHUB_ENV
echo "PR_NUMBER=$(cat PR_NUMBER)" >> $GITHUB_ENV
- uses: actions/checkout@v3 # UNTRUSTED CODE - do not run scripts from it
with:
ref: ${{ env.PR_SHA }}
- name: Upload coverage artifact and post comment
uses: mbta/github-actions-report-lcov@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
coverage-files: ${{ runner.temp }}/cover/lcov*.info
artifact-name: elixir-code-coverage