Skip to content

Commit a407b1b

Browse files
authored
Move to GitHub CI (#106)
* Move to GitHub CI * Bump minimum slab patch version
1 parent adb68b7 commit a407b1b

File tree

13 files changed

+263
-75
lines changed

13 files changed

+263
-75
lines changed

.github/workflows/asan.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
on:
2+
push:
3+
branches: [main]
4+
pull_request:
5+
name: Address sanitizer
6+
jobs:
7+
test:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions-rs/toolchain@v1
11+
with:
12+
profile: minimal
13+
toolchain: nightly
14+
override: true
15+
- uses: actions/checkout@v2
16+
- name: cargo test -Zsanitizer=address
17+
uses: actions-rs/cargo@v1
18+
with:
19+
command: test
20+
# only --lib --tests b/c of https://github.com/rust-lang/rust/issues/53945
21+
args: --lib --tests --all-features --target x86_64-unknown-linux-gnu
22+
env:
23+
ASAN_OPTIONS: "detect_odr_violation=0"
24+
RUSTFLAGS: "-Z sanitizer=address"

.github/workflows/coverage.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
on:
2+
push:
3+
branches: [main]
4+
pull_request:
5+
name: coverage
6+
jobs:
7+
test:
8+
runs-on: ubuntu-latest
9+
container:
10+
image: xd009642/tarpaulin
11+
options: --security-opt seccomp=unconfined
12+
steps:
13+
- uses: actions/checkout@v2
14+
- name: Generate code coverage
15+
run: |
16+
cargo tarpaulin --verbose --all-features --timeout 120 --out Xml
17+
- name: Upload to codecov.io
18+
uses: codecov/codecov-action@v2
19+
with:
20+
fail_ci_if_error: true

.github/workflows/features.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
on:
2+
push:
3+
branches: [main]
4+
pull_request:
5+
name: cargo hack
6+
jobs:
7+
check:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions-rs/toolchain@v1
11+
with:
12+
profile: minimal
13+
toolchain: stable
14+
- uses: actions/checkout@v2
15+
- name: Install cargo-hack
16+
uses: actions-rs/[email protected]
17+
with:
18+
crate: cargo-hack
19+
version: latest
20+
use-tool-cache: true
21+
- name: cargo hack
22+
uses: actions-rs/cargo@v1
23+
with:
24+
command: hack
25+
args: --feature-powerset check

.github/workflows/loom.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
on:
2+
push:
3+
branches: [main]
4+
pull_request:
5+
name: Loom
6+
jobs:
7+
test:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions-rs/toolchain@v1
11+
with:
12+
toolchain: stable
13+
profile: minimal
14+
- uses: actions/checkout@v2
15+
- name: cargo test --test loom
16+
uses: actions-rs/cargo@v1
17+
with:
18+
command: test
19+
args: --release --test loom
20+
env:
21+
LOOM_MAX_PREEMPTIONS: 3
22+
RUSTFLAGS: "--cfg loom"

.github/workflows/lsan.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
on:
2+
push:
3+
branches: [main]
4+
pull_request:
5+
name: Leak sanitizer
6+
jobs:
7+
test:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions-rs/toolchain@v1
11+
with:
12+
profile: minimal
13+
toolchain: nightly
14+
override: true
15+
- uses: actions/checkout@v2
16+
- run: |
17+
# to get the symbolizer for debug symbol resolution
18+
sudo apt install llvm
19+
# to fix buggy leak analyzer:
20+
# https://github.com/japaric/rust-san#unrealiable-leaksanitizer
21+
sed -i '/\[features\]/i [profile.dev]' Cargo.toml
22+
sed -i '/profile.dev/a opt-level = 1' Cargo.toml
23+
cat Cargo.toml
24+
name: Enable debug symbols
25+
- name: cargo test -Zsanitizer=leak
26+
uses: actions-rs/cargo@v1
27+
with:
28+
command: test
29+
args: --all-features --target x86_64-unknown-linux-gnu
30+
env:
31+
RUSTFLAGS: "-Z sanitizer=leak"
32+
# LSAN_OPTIONS: "suppressions=lsan-suppressions.txt"

.github/workflows/minimal.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
on:
2+
push:
3+
branches: [main]
4+
pull_request:
5+
name: With dependencies at minimal versions
6+
jobs:
7+
test:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions-rs/toolchain@v1
11+
with:
12+
profile: minimal
13+
toolchain: nightly
14+
- uses: actions-rs/toolchain@v1
15+
with:
16+
profile: minimal
17+
toolchain: stable
18+
- uses: actions/checkout@v2
19+
- name: cargo update -Zminimal-versions
20+
uses: actions-rs/cargo@v1
21+
with:
22+
command: update
23+
toolchain: nightly
24+
args: -Zminimal-versions
25+
- name: cargo test
26+
uses: actions-rs/cargo@v1
27+
with:
28+
command: test
29+
args: --all-features

.github/workflows/miri.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
on:
2+
push:
3+
branches: [main]
4+
pull_request:
5+
name: Miri
6+
jobs:
7+
test:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- run: |
11+
echo "NIGHTLY=nightly-$(curl -s https://rust-lang.github.io/rustup-components-history/x86_64-unknown-linux-gnu/miri)" >> $GITHUB_ENV
12+
- uses: actions-rs/toolchain@v1
13+
with:
14+
profile: minimal
15+
toolchain: ${{ env.NIGHTLY }}
16+
override: true
17+
components: miri
18+
- uses: actions/checkout@v2
19+
- name: cargo miri test
20+
uses: actions-rs/cargo@v1
21+
with:
22+
command: miri
23+
args: test
24+
env:
25+
MIRIFLAGS: "-Zmiri-tag-raw-pointers"

.github/workflows/msrv.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
on:
2+
push:
3+
branches: [main]
4+
pull_request:
5+
name: Minimum Supported Rust Version
6+
jobs:
7+
check:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions-rs/toolchain@v1
11+
with:
12+
profile: minimal
13+
toolchain: 1.40.0
14+
override: true
15+
- uses: actions/checkout@v2
16+
- name: cargo +1.40.0 check
17+
uses: actions-rs/cargo@v1
18+
with:
19+
command: check

.github/workflows/style.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
on:
2+
push:
3+
branches: [main]
4+
pull_request:
5+
name: lint
6+
jobs:
7+
style:
8+
runs-on: ubuntu-latest
9+
name: ${{ matrix.toolchain }}
10+
strategy:
11+
fail-fast: false
12+
matrix:
13+
toolchain: [stable, beta]
14+
steps:
15+
- uses: actions-rs/toolchain@v1
16+
with:
17+
profile: minimal
18+
toolchain: ${{ matrix.toolchain }}
19+
components: rustfmt, clippy
20+
- uses: actions/checkout@v2
21+
- name: cargo fmt --check
22+
uses: actions-rs/cargo@v1
23+
with:
24+
command: fmt
25+
args: --check
26+
- name: cargo doc
27+
uses: actions-rs/cargo@v1
28+
if: always()
29+
with:
30+
command: doc
31+
args: --no-deps --all-features
32+
- name: cargo clippy
33+
uses: actions-rs/clippy-check@v1
34+
if: always()
35+
with:
36+
token: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/test.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
on:
2+
push:
3+
branches: [main]
4+
pull_request:
5+
name: cargo test
6+
jobs:
7+
test:
8+
runs-on: ${{ matrix.os }}
9+
name: ${{ matrix.os }} / ${{ matrix.toolchain }}
10+
strategy:
11+
fail-fast: false
12+
matrix:
13+
os: [ubuntu-latest, macos-latest, windows-latest]
14+
toolchain: [stable]
15+
include:
16+
- os: ubuntu-latest
17+
toolchain: beta
18+
- os: ubuntu-latest
19+
toolchain: nightly
20+
steps:
21+
- uses: actions-rs/toolchain@v1
22+
with:
23+
profile: minimal
24+
toolchain: ${{ matrix.toolchain }}
25+
- uses: actions/checkout@v2
26+
- name: cargo test
27+
uses: actions-rs/cargo@v1
28+
with:
29+
command: test
30+
args: --all-features

0 commit comments

Comments
 (0)