-
Notifications
You must be signed in to change notification settings - Fork 112
96 lines (83 loc) · 2.91 KB
/
dt-test-and-report-code-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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
name: DT Tests
on:
workflow_call:
secrets:
SONAR_TOKEN:
required: true
pull_request:
types: ['opened', 'reopened', 'synchronize']
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.sha }}
cancel-in-progress: true
jobs:
get_workflow_url:
runs-on: ubuntu-latest
steps:
- id: get_url
run: |
curl -s https://api.github.com/repos/${{ github.repository }}/actions/workflows/${{ github.workflow }}/runs/${{ github.run_id }} | jq -r .html_url >> workflow_url.txt
echo "::set-output name=workflow_url::$(cat workflow_url.txt)"
outputs:
url: ${{ steps.get_url.outputs.workflow_url }}
coverage:
name: Code Coverage
runs-on: ubuntu-latest
needs: [get_workflow_url]
outputs:
tests_run_outcome: ${{steps.run_tests.outcome}}
steps:
- name: Checkout
uses: actions/[email protected]
with:
fetch-depth: 1
- name: Setup Node
uses: actions/[email protected]
with:
node-version-file: '.nvmrc'
cache: 'npm'
- name: Install Dependencies
run: npm ci
- name: Run Tests
id: run_tests
continue-on-error: true
run: |
# Supress logging in tests
LOG_LEVEL=100 npm run test:js:ci
LOG_LEVEL=100 npm run test:ts:ci
- name: Run Lint Checks
run: |
npm run check:lint
npm run lint:fix
- name: Upload Coverage Reports to Codecov
uses: codecov/[email protected]
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
directory: ./reports/coverage
- name: Upload TS Coverage Reports to Codecov
uses: codecov/[email protected]
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
directory: ./reports/ts-coverage
- name: Fix filesystem paths in generated reports
if: always()
run: |
sed -i 's+home/runner/work/rudder-transformer/rudder-transformer+/github/workspace+g' reports/coverage/lcov.info
sed -i 's+home/runner/work/rudder-transformer/rudder-transformer+/github/workspace+g' reports/ts-coverage/lcov.info
sed -i 's+/home/runner/work/rudder-transformer/rudder-transformer+/github/workspace+g' reports/eslint.json
- name: SonarCloud Scan
if: always()
uses: SonarSource/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
notify:
name: slack notification on failure
needs: [get_workflow_url, coverage]
if: needs.coverage.outputs.tests_run_outcome == 'failure' || failure()
uses: ./.github/workflows/slack-notify.yml
with:
workflow_url: ${{ needs.get_workflow_url.outputs.url }}
should_notify: ${{startsWith(github.event.pull_request.head.ref, 'hotfix-release/')}}
secrets: inherit