Skip to content

Commit 980ff9b

Browse files
committed
add github workflow
1 parent 7e0d94f commit 980ff9b

File tree

1 file changed

+90
-0
lines changed

1 file changed

+90
-0
lines changed

.github/workflows/pipeline.yaml

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
name: pipeline
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
- feature/*
8+
pull_request:
9+
branches:
10+
- main
11+
12+
env:
13+
CARGO_TERM_COLOR: always
14+
15+
jobs:
16+
cargo_fmt:
17+
name: "Cargo Format"
18+
runs-on: ubuntu-latest
19+
steps:
20+
- uses: actions/checkout@v3
21+
- name: Install nightly toolchain
22+
run: rustup toolchain install nightly --component rustfmt
23+
- name: Check formatting
24+
run: cargo +nightly fmt --all -- --check
25+
cargo_clippy:
26+
name: "Cargo Clippy"
27+
runs-on: ubuntu-latest
28+
steps:
29+
- uses: actions/checkout@v3
30+
- name: Install Clippy
31+
run: rustup component add clippy
32+
- name: Run Clippy
33+
run: cargo clippy --all-targets --all-features -- -D warnings
34+
cargo_test:
35+
name: "Cargo Test"
36+
runs-on: ubuntu-latest
37+
steps:
38+
- uses: actions/checkout@v3
39+
- name: Build
40+
run: cargo build --verbose
41+
- name: Test with Cargo
42+
run: cargo test --verbose
43+
cargo_test_release:
44+
name: "Cargo Test (Release)"
45+
runs-on: ubuntu-latest
46+
needs: [cargo_test]
47+
steps:
48+
- uses: actions/checkout@v3
49+
- name: Build
50+
run: cargo build --release --verbose
51+
- name: Test with Cargo (Release)
52+
run: cargo test --release --verbose
53+
cargo_test_no_default_features:
54+
name: "Cargo Test (No Default Features)"
55+
runs-on: ubuntu-latest
56+
needs: [cargo_test_release]
57+
steps:
58+
- uses: actions/checkout@v3
59+
- name: Build
60+
run: cargo build --no-default-features --verbose
61+
- name: Test with Cargo (No Default Features)
62+
run: cargo test --no-default-features --verbose
63+
miri_test:
64+
name: "Miri Test"
65+
runs-on: ubuntu-latest
66+
needs: [cargo_test_release]
67+
steps:
68+
- uses: actions/checkout@v3
69+
- name: Install Miri
70+
run: |
71+
rustup toolchain install nightly --component miri
72+
rustup override set nightly
73+
cargo miri setup
74+
- name: Test with Miri
75+
run: cargo miri test
76+
miri_test_with_flags:
77+
name: "Miri Test (RUSTFLAGS)"
78+
env:
79+
RUSTFLAGS: "-Z randomize-layout"
80+
runs-on: ubuntu-latest
81+
needs: [miri_test]
82+
steps:
83+
- uses: actions/checkout@v3
84+
- name: Install Miri
85+
run: |
86+
rustup toolchain install nightly --component miri
87+
rustup override set nightly
88+
cargo miri setup
89+
- name: Test with Miri
90+
run: cargo miri test

0 commit comments

Comments
 (0)