-
Notifications
You must be signed in to change notification settings - Fork 8
137 lines (110 loc) · 3.64 KB
/
general-rust.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
132
133
134
135
136
137
name: General Rust
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:
build-cargo-scout-audit:
name: Build Scout Audit
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
scout-audit-test:
name: Test Scout Audit
runs-on: ubuntu-latest
needs: build-cargo-scout-audit
strategy:
matrix:
test: ["assert-violation", "avoid-core-mem-forget", "avoid-format!-string"]
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
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
fmt:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Update Rust
run: rustup update
- name: Install Rust nightly
run: rustup install nightly --profile minimal
- name: Install Rustfmt
run: rustup component add rustfmt --toolchain nightly
- name: Run cargo fmt
run: make fmt-rust-check
# clippy:
# name: Clippy
# 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: ./apps/cargo-scout-audit/target
# key: ${{ runner.os }}-cargo-${{ hashFiles('apps/cargo-scout-audit/Cargo.lock') }}
# - name: Update Rust
# run: rustup update
# - 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 Clippy nightly-2023-01-27
# run: rustup component add clippy --toolchain nightly-2023-01-27
# - name: Install Clippy nightly-2023-04-23
# run: rustup component add clippy --toolchain nightly-2023-04-23
# - name: Install dylint-link
# run: cargo install dylint-link
# - name: Run clippy
# run: make lint-rust