-
Notifications
You must be signed in to change notification settings - Fork 2
120 lines (113 loc) · 3.96 KB
/
ci.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
name: PR
# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the master branch
push:
branches: [ '**' ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
permissions:
id-token: write
contents: read
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
format:
name: Check Lints
runs-on: ubuntu-24.04
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: nightly-2024-03-12
override: true
components: rustfmt
- name: Check TOML
uses: dprint/check@v2.2
- name: Check Format
run: |
cargo fmt -- --check
check:
name: Cargo check
needs: format
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v3
- name: Install linux dependencies
run: sudo apt update && sudo apt install -y cargo clang libssl-dev llvm libudev-dev protobuf-compiler
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: 1.77.0
override: true
target: wasm32-unknown-unknown
- name: Rust Cache
uses: Swatinem/rust-cache@v2
- name: Install try-runtime
run: cargo install --git https://github.com/paritytech/try-runtime-cli --tag v0.7.0 --locked
- name: Check Build
run: |
cargo build --release --features try-runtime
- name: Check Try-Runtime
run: |
try-runtime --runtime ./target/release/wbuild/cere-dev-runtime/cere_dev_runtime.compact.compressed.wasm \
on-runtime-upgrade --disable-idempotency-checks live --uri wss://archive.devnet.cere.network:443
- name: Run dev chain
run: |
timeout --preserve-status 30s ./target/release/cere --dev
- name: Check Build for Benchmarking
run: >
pushd node &&
cargo check --features=runtime-benchmarks --release
- name: Check Build for Try-Runtime
run: |
cargo check --features=try-runtime --release
clippy:
name: Run Clippy
needs: format
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v3
- name: Install linux dependencies
run: sudo apt update && sudo apt install -y cargo clang libssl-dev llvm libudev-dev protobuf-compiler
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: 1.77.0
override: true
target: wasm32-unknown-unknown
components: clippy
- name: Rust Cache
uses: Swatinem/rust-cache@v2
- name: Check with Clippy
run: |
cargo clippy --no-deps --all-targets --features runtime-benchmarks,try-runtime --workspace -- --deny warnings
tests:
name: Run tests
needs: format
# The type of runner that the job will run on
runs-on: ["self-hosted", "cere-network-memory-large"]
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
- name: Install linux dependencies
run: sudo apt update && sudo apt install -y cargo clang libssl-dev llvm libudev-dev protobuf-compiler
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: 1.77.0
override: true
target: wasm32-unknown-unknown
- name: Rust Cache
uses: Swatinem/rust-cache@v2
- name: Run cargo-tarpaulin
uses: actions-rs/tarpaulin@v0.1
with:
version: '0.22.0'
args: '--verbose --locked --no-fail-fast --workspace --features runtime-benchmarks --out "Xml"'
- name: Upload coverage report
uses: actions/upload-artifact@v3
with:
name: tarpaulin coverage
path: ./tarpaulin-report.xml