-
Notifications
You must be signed in to change notification settings - Fork 0
147 lines (122 loc) · 4.05 KB
/
coverage.yaml
File metadata and controls
147 lines (122 loc) · 4.05 KB
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
name: Coverage checks
on:
# Trigger the workflow on push
push:
# Trigger the workflow on pull request
pull_request:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Need permissions to trigger the dashboard build workflow
permissions:
actions: write
contents: read
# Allow only one concurrent workflow, skipping runs queued between the run
# in-progress and latest queued. And cancel in-progress runs.
concurrency:
group:
${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
# Set the environment variables to be used in all jobs defined in this workflow
env:
CI_BRANCH: ${{ github.head_ref || github.ref_name }}
jobs:
# Job 1: Run docstring coverage
docstring-coverage:
runs-on: ubuntu-latest
steps:
- name: Check-out repository
uses: actions/checkout@v5
- name: Set up pixi
uses: prefix-dev/setup-pixi@v0.9.3
with:
environments: default
activate-environment: default
run-install: true
frozen: true
cache: false
post-cleanup: false
- name: Install and setup development dependencies
shell: bash
run: pixi run dev
- name: Run docstring coverage
run: pixi run docstring-coverage
# Job 2: Run unit tests with coverage and upload to Codecov
unit-tests-coverage:
runs-on: ubuntu-latest
steps:
- name: Check-out repository
uses: actions/checkout@v5
- name: Set up pixi
uses: prefix-dev/setup-pixi@v0.9.3
with:
environments: default
activate-environment: default
run-install: true
frozen: true
cache: false
post-cleanup: false
- name: Install and setup development dependencies
shell: bash
run: pixi run dev
- name: Run unit tests with coverage
run: pixi run unit-tests-coverage --cov-report=xml:coverage-unit.xml
- name: Upload unit tests coverage to Codecov
if: ${{ !cancelled() }}
uses: codecov/codecov-action@v5
with:
name: unit-tests-job
flags: unittests
files: ./coverage-unit.xml
fail_ci_if_error: true
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
# Job 3: Run integration tests with coverage and upload to Codecov
integration-tests-coverage:
runs-on: ubuntu-latest
steps:
- name: Check-out repository
uses: actions/checkout@v5
- name: Set up pixi
uses: prefix-dev/setup-pixi@v0.9.3
with:
environments: default
activate-environment: default
run-install: true
frozen: true
cache: false
post-cleanup: false
- name: Install and setup development dependencies
shell: bash
run: pixi run dev
- name: Run integration tests with coverage
run:
pixi run integration-tests-coverage
--cov-report=xml:coverage-integration.xml
- name: Upload integration tests coverage to Codecov
if: ${{ !cancelled() }}
uses: codecov/codecov-action@v5
with:
name: integration-tests-job
flags: integration
files: ./coverage-integration.xml
fail_ci_if_error: true
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
# Job 4: Trigger dashboard build
dashboard-build-trigger:
needs: [docstring-coverage, unit-tests-coverage, integration-tests-coverage] # depend on the previous jobs
runs-on: ubuntu-latest
steps:
- name: Check-out repository
uses: actions/checkout@v5
- name: Trigger dashboard build
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
await github.rest.actions.createWorkflowDispatch({
owner: context.repo.owner,
repo: context.repo.repo,
workflow_id: "dashboard.yaml",
ref: "${{ env.CI_BRANCH }}"
});