forked from stratum-mining/stratum
-
Notifications
You must be signed in to change notification settings - Fork 0
162 lines (123 loc) · 6.07 KB
/
coverage.yaml
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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# Performs test coverage of project's libraries using cargo-tarpaulin and the message-generator,
# and generates results using codecov.io.
# The following flags are set inside `tarpaulin.toml`:
# `features = "..."`: Includes the code with the listed features. The following features result in a
# tarpaulin error and are NOT included: derive, alloc, arbitrary-derive, attributes, and
# with_serde
# `run-types = [ "Lib" ]`: Only tests the package's library unit tests. Includes protocols, and utils (without the
# exclude-files flag, it includes this example because it contains a lib.rs file)
# `exclude-files = [ "examples/*" ]`: Excludes all projects in examples directory (specifically added to
# ignore examples that that contain a lib.rs file like interop-cpp)
# `timeout = "120s"`: If unresponsive for 120 seconds, action will fail
# `fail-under = 20`: If code coverage is less than 20%, action will fail
# `out = ["Xml"]`: Required for codecov.io to generate coverage result
# All message-generator test flags are in tests in test/message-generator/test
# This test loops through every test in test/message-generator/test, and runs each one, collecting
# code coverage data for anything in the roles/ directory that is relevant to SV2(pool, mining-proxy)
name: Test Coverage
on:
push:
branches: [ main, dev ]
pull_request:
branches: [ main, dev ]
jobs:
tarpaulin-test:
name: Tarpaulin Test
runs-on: ubuntu-latest
container:
image: xd009642/tarpaulin:0.27.1-nightly
options: --security-opt seccomp=unconfined
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Generate code coverage
run: |
./tarpaulin.sh
- name: Archive Tarpaulin code coverage results
uses: actions/upload-artifact@v4
with:
name: tarpaulin-report
path: |
protocols/cobertura.xml
roles/cobertura.xml
utils/cobertura.xml
message-generator-test:
needs: tarpaulin-test
name: MG Test
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.75.0
override: true
components: llvm-tools-preview
- name: Log data from rustc
run: rustc -Vv
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: Run bad-pool-config-test
run: sh ./test/message-generator/test/bad-pool-config-test/bad-pool-config-test.sh
- name: Run interop-jd-translator
run: sh ./test/message-generator/test/interop-jd-translator/interop-jd-translator.sh
#- name: Run interop-jdc-change-upstream
# run: sh ./test/message-generator/test/interop-jdc-change-upstream/interop-jdc-change-upstream.sh
- name: Run interop-proxy-with-multi-ups
run: sh ./test/message-generator/test/interop-proxy-with-multi-ups/interop-proxy-with-multi-ups.sh
- name: Run interop-proxy-with-multi-ups-extended
run: sh ./test/message-generator/test/interop-proxy-with-multi-ups-extended/interop-proxy-with-multi-ups-extended.sh
- name: Run jds-do-not-fail-on-wrong-tsdatasucc
run: sh ./test/message-generator/test/jds-do-not-fail-on-wrong-tsdatasucc/jds-do-not-fail-on-wrong-tsdatasucc.sh
- name: Run jds-do-not-panic-if-jdc-close-connection
run: sh ./test/message-generator/test/jds-do-not-panic-if-jdc-close-connection/jds-do-not-panic-if-jdc-close-connection.sh
- name: Run jds-do-not-stackoverflow-when-no-token
run: sh ./test/message-generator/test/jds-do-not-stackoverflow-when-no-token/jds-do-not-stackoverflow-when-no-token.sh
- name: Run pool-sri-test-1-standard
run: sh ./test/message-generator/test/pool-sri-test-1-standard/pool-sri-test-1-standard.sh
- name: Run pool-sri-test-close-channel
run: sh ./test/message-generator/test/pool-sri-test-close-channel/pool-sri-test-close-channel.sh
- name: Run pool-sri-test-extended_0
run: sh ./test/message-generator/test/pool-sri-test-extended_0/pool-sri-test-extended_0.sh
- name: Run pool-sri-test-extended_1
run: sh ./test/message-generator/test/pool-sri-test-extended_1/pool-sri-test-extended_1.sh
- name: Run pool-sri-test-reject-auth
run: sh ./test/message-generator/test/pool-sri-test-reject-auth/pool-sri-test-reject-auth.sh
- name: Run standard-coverage
run: sh ./test/message-generator/test/standard-coverage-test/standard-coverage-test.sh
- name: Run sv1-test
run: sh ./test/message-generator/test/sv1-test/sv1-test.sh
- name: Run translation-proxy-broke-pool
run: sh ./test/message-generator/test/translation-proxy-broke-pool/translation-proxy-broke-pool.sh
- name: Run translation-proxy
run: sh ./test/message-generator/test/translation-proxy/translation-proxy.sh
- name: Coverage report
run: sh ./code-coverage-report.sh
- name: Archive MG code coverage results
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: 'target/*.xml'
- name: Archive log files
if: always()
uses: actions/upload-artifact@v4
with:
name: logs
path: './utils/message-generator/*.log'
# codecov:
# needs: message-generator-test
# name: Codecov Upload
# runs-on: ubuntu-latest
# steps:
# - name: Checkout repository
# uses: actions/checkout@v4
# - name: Download all workflow run artifacts
# uses: actions/download-artifact@v4
# - name: Display structure of downloaded files
# run: ls -R
# - name: Upload to codecov.io
# uses: codecov/codecov-action@v3
# with:
# files: coverage-report/*.xml, tarpaulin-report/*.xml
# fail_ci_if_error: true
# token: ${{ secrets.CODECOV_TOKEN }}