-
Notifications
You must be signed in to change notification settings - Fork 14
130 lines (123 loc) · 4.53 KB
/
rust-checks.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
name: Rust checks
on:
pull_request:
push:
branches:
- main
concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true
env:
RUST_BACKTRACE: 1
# pin nightly to avoid constantly throwing out cache
TOOLCHAIN_FMT: nightly-2024-04-09
jobs:
doc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
- uses: Swatinem/rust-cache@v2
with:
key: check-doc-v0
- name: Install Protoc
uses: arduino/setup-protoc@v1
with:
version: "3.6.1"
- name: cargo doc
run: RUSTFLAGS="-D warnings" cargo doc --locked
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust ${{ env.TOOLCHAIN_FMT }}
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ env.TOOLCHAIN_FMT }}
targets: wasm32-unknown-unknown
components: rustfmt, clippy, rust-src
- uses: Swatinem/rust-cache@v2
with:
key: fmt-v0
- name: cargo fmt
run: cargo +${{ env.TOOLCHAIN_FMT }} fmt --all -- --check
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
targets: wasm32-unknown-unknown
components: rustfmt, clippy, rust-src
- uses: Swatinem/rust-cache@v2
with:
key: clippy-v0
- name: Install deps for musl build
run: |
sudo apt-get update
sudo apt-get install -y protobuf-compiler musl-tools clang build-essential curl llvm-dev libclang-dev linux-headers-generic libsnappy-dev liblz4-dev libzstd-dev libgflags-dev zlib1g-dev libbz2-dev
sudo ln -s /usr/bin/g++ /usr/bin/musl-g++
- name: cargo clippy
uses: actions-rs-plus/clippy-check@v2
with:
toolchain: stable
args: --all-targets --all-features --locked --no-deps -- --deny warnings
test:
strategy:
matrix:
os: [ubuntu-latest]
toolchain: [stable]
runs-on: ${{ matrix.os }}
env:
RUSTFLAGS: "-Cdebug-assertions=y"
steps:
- uses: actions/checkout@v4
- name: Install Rust ${{ matrix.toolchain }}
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ matrix.toolchain }}
targets: wasm32-unknown-unknown
- uses: Swatinem/rust-cache@v2
- name: Install Protoc
uses: arduino/setup-protoc@v1
with:
version: "3.6.1"
- name: Free disk space
run: |
sudo docker rmi $(docker image ls -aq) >/dev/null 2>&1 || true
sudo rm -rf \
/usr/share/dotnet /usr/local/lib/android /opt/ghc \
/usr/local/share/powershell /usr/share/swift /usr/local/.ghcup \
/usr/lib/jvm || true
sudo apt install aptitude -y >/dev/null 2>&1
sudo aptitude purge aria2 ansible azure-cli shellcheck rpm xorriso zsync \
esl-erlang firefox gfortran-8 gfortran-9 google-chrome-stable \
google-cloud-sdk imagemagick \
libmagickcore-dev libmagickwand-dev libmagic-dev ant ant-optional kubectl \
mercurial apt-transport-https mono-complete libmysqlclient \
unixodbc-dev yarn chrpath libssl-dev libxft-dev \
libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev \
snmp pollinate libpq-dev postgresql-client powershell ruby-full \
sphinxsearch subversion mongodb-org azure-cli microsoft-edge-stable \
-y -f >/dev/null 2>&1
sudo aptitude purge google-cloud-sdk -f -y >/dev/null 2>&1
sudo aptitude purge microsoft-edge-stable -f -y >/dev/null 2>&1 || true
sudo apt purge microsoft-edge-stable -f -y >/dev/null 2>&1 || true
sudo aptitude purge '~n ^mysql' -f -y >/dev/null 2>&1
sudo aptitude purge '~n ^php' -f -y >/dev/null 2>&1
sudo aptitude purge '~n ^dotnet' -f -y >/dev/null 2>&1
sudo apt-get autoremove -y >/dev/null 2>&1
sudo apt-get autoclean -y >/dev/null 2>&1
- name: build try-runtime-cli
# this is required for testing
# build --release or the execution time of the test is too long
run: cargo build --release -p try-runtime-cli
- name: cargo test
run: cargo test --release
- name: Check disk space
run: df . -h