-
Notifications
You must be signed in to change notification settings - Fork 8
131 lines (113 loc) · 3.62 KB
/
test-detectors.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
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
name: Test Detectors
on:
push:
branches:
- "main"
paths:
- "apps/cargo-scout-audit/**"
- "detectors/**"
- "test-cases/**"
- "Makefile"
pull_request:
paths:
- "apps/cargo-scout-audit/**"
- "detectors/**"
- "test-cases/**"
- "Makefile"
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
jobs:
check-config:
name: Check config
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Check test matrixc is complete
run: python scripts/check-ci-detectors-to-test.py .github/workflows/test-detectors.yml detectors
- name: Check detectors for repeated names
run: python scripts/check-detectors-repeated-names.py detectors
- name: Check detector names with underscore
run: python scripts/check-detectors-underscore-names.py detectors
- name: Check detector names different than their folders
run: python scripts/check-detectors-names-match-folder.py detectors
build:
name: Build
needs: check-config
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Cache cargo-scout dependencies
id: cache-cargo-scout-dependencies
uses: actions/cache@v3
with:
path: |
~/.cargo
apps/cargo-scout-audit/target
key: ${{ runner.os }}-cargo-scout-dependencies-${{ github.run_id }}
- name: Install Rust nightly-2023-01-27
run: rustup install nightly-2023-01-27 --profile minimal
- name: Install Rust nightly-2023-04-23
run: rustup install nightly-2023-04-23 --profile minimal
- name: Install dylint-link
run: cargo install dylint-link
- name: Install cargo-scout-audit
run: cargo install --path apps/cargo-scout-audit
- name: Build detectors
working-directory: ${{ runner.temp }}
run: |
cargo new test-run
cd test-run
cargo scout-audit
- name: Compile cargo-scout-audit tests
working-directory: apps/cargo-scout-audit
run: cargo test --no-run
test:
name: Test
runs-on: ubuntu-latest
needs: build
strategy:
matrix:
test:
[
"assert-violation",
"avoid-core-mem-forget",
"avoid-format!-string",
"delegate-call",
"divide-before-multiply",
"dos-unbounded-operation",
"dos-unexpected-revert-with-vector",
"ink-version",
"insufficiently-random-values",
"integer-overflow-or-underflow",
"iterators-over-indexing",
"lazy-delegate",
"panic-error",
"reentrancy-1",
"reentrancy-2",
"set-code-hash",
"set-contract-storage",
"unprotected-mapping-operation",
"unprotected-self-destruct",
"unrestricted-transfer-from",
"unsafe-expect",
"unsafe-unwrap",
"unused-return-enum",
"zero-or-test-address",
]
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Cache cargo-scout dependencies
id: cache-cargo-scout-dependencies
uses: actions/cache@v3
with:
path: |
~/.cargo
apps/cargo-scout-audit/target
key: ${{ runner.os }}-cargo-scout-dependencies-${{ github.run_id }}
- name: Run tests
working-directory: apps/cargo-scout-audit
run: INTEGRATION_TESTS_TO_RUN=${{ matrix.test }} cargo test -- --nocapture