-
Notifications
You must be signed in to change notification settings - Fork 8
133 lines (124 loc) · 3.44 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
121
122
123
124
125
126
127
128
129
130
131
132
133
name: "cargo-concordium: Build and test"
# This job runs rustfmt and clippy linting,
# cargo check on cargo-concordium,
# and then it runs cargo test and ./target/debug/wasm-test
on:
push:
branches: main
pull_request:
branches: main
types:
- opened
- reopened
- synchronize
- ready_for_review
paths:
- 'cargo-concordium/**/*.rs'
- 'cargo-concordium/**/*.toml'
- 'rustfmt.toml'
- 'concordium-base'
workflow_dispatch: # allows manual trigger
env:
# from concordium/rustfmt:0.17
RUST_FMT: nightly-2023-04-01-x86_64-unknown-linux-gnu
RUST_CLIPPY: 1.73
jobs:
"lint_fmt":
name: ${{ matrix.build-dir }} lint:fmt
# Don't run on draft pull requests
if: ${{ !github.event.pull_request.draft }}
runs-on: ubuntu-latest
strategy:
matrix:
build-dir:
- 'cargo-concordium'
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.RUST_FMT }}
override: true
components: rustfmt
- name: Format
working-directory: ${{ matrix.build-dir }}
run: |
cargo fmt -- --color=always --check
# For binaries we additionally commit the lock file. And we want to ensure
# that the file is up-to-date.
"lint_clippy_binaries":
name: ${{ matrix.build-dir }} lint:clippy
# Don't run on draft pull requests
if: ${{ !github.event.pull_request.draft }}
runs-on: ubuntu-latest
strategy:
matrix:
build-dir:
- 'cargo-concordium'
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: recursive
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.RUST_CLIPPY }}
override: true
components: clippy
- name: Clippy
working-directory: ${{ matrix.build-dir }}
run: |
git config --global url."https://github.com/".insteadOf "[email protected]:"
cargo clippy --locked --color=always --tests --benches -- -Dclippy::all
"cargo-concordium_cargo_build-bench":
name: cargo-concordium cargo:build-bench
runs-on: ubuntu-latest
needs:
- lint_clippy_binaries
- lint_fmt
strategy:
matrix:
build-dir:
- 'cargo-concordium'
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: recursive
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.RUST_CLIPPY }}
override: true
components: clippy
- name: Cargo check
working-directory: ${{ matrix.build-dir }}
run: cargo check --benches --tests
"cargo_test":
name: ${{ matrix.build-dir }} cargo:test
runs-on: ubuntu-latest
needs:
- cargo-concordium_cargo_build-bench
strategy:
matrix:
build-dir:
- 'cargo-concordium'
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: recursive
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.RUST_CLIPPY }}
override: true
- name: Test
working-directory: ${{ matrix.build-dir }}
run: cargo test