Merge pull request #157 from timmc/patch-1 #260
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: test | |
on: | |
push: | |
env: | |
CARGO_TERM_COLOR: always | |
RUST_BACKTRACE: full | |
jobs: | |
test: | |
name: Build & test | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
- macos-latest | |
- windows-latest | |
rust: | |
- stable | |
- beta | |
- nightly | |
# Introduction of self: Arc<..>, needed for the iterator module | |
- 1.36.0 | |
# Introduction of non_exhaustive, used at certain exfiltrators | |
- 1.40.0 | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: checkout | |
uses: actions/checkout@v2 | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.rust }} | |
default: true | |
profile: minimal | |
- name: Restore cache | |
uses: Swatinem/rust-cache@v1 | |
- name: Build & test | |
env: | |
RUST_VERSION: ${{ matrix.rust }} | |
OS: ${{ matrix.os }} | |
run: ./ci-check.sh | |
rustfmt: | |
name: Check formatting | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout | |
uses: actions/checkout@v2 | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
default: true | |
components: rustfmt | |
- run: cargo fmt --all -- --check | |
links: | |
name: Check documentation links | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout | |
uses: actions/checkout@v2 | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
default: true | |
- name: Restore cache | |
uses: Swatinem/rust-cache@v1 | |
- name: Install cargo-deadlinks | |
uses: actions-rs/install@v0.1 | |
with: | |
crate: cargo-deadlinks | |
use-tool-cache: true | |
- name: Check links | |
run: | | |
for package in $(cargo metadata --no-deps --format-version=1 | jq -r '.packages[] | .name'); do | |
cargo rustdoc -p "$package" --all-features -- -D warnings | |
dname=$(echo "$package" | tr '-' '_') | |
cargo deadlinks --dir "target/doc/$dname" --check-http --ignore-fragments | |
done | |
ancient-registry: | |
name: Check compilation of signal-hook-registry on 1.26.0 | |
strategy: | |
matrix: | |
os: | |
- ubuntu-latest | |
- macos-latest | |
- windows-latest | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: checkout | |
uses: actions/checkout@v2 | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: 1.26.0 | |
default: true | |
profile: minimal | |
- name: Restore cache | |
uses: Swatinem/rust-cache@v1 | |
- name: Check compilation | |
run: | | |
rm Cargo.toml | |
cd signal-hook-registry | |
sed -i -e '/signal-hook =/d' Cargo.toml | |
cargo check | |
ancient: | |
name: Check compilation on 1.31.0 | |
strategy: | |
matrix: | |
os: | |
- ubuntu-latest | |
- macos-latest | |
- windows-latest | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: checkout | |
uses: actions/checkout@v2 | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: 1.31.0 | |
default: true | |
profile: minimal | |
- name: Restore cache | |
uses: Swatinem/rust-cache@v1 | |
- name: Check compilation | |
run: | | |
rm Cargo.lock | |
cargo update | |
cargo check --no-default-features | |
clippy: | |
name: Clippy lints | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
profile: minimal | |
default: true | |
components: clippy | |
- name: Restore cache | |
uses: Swatinem/rust-cache@v1 | |
- name: Run clippy linter | |
run: cargo clippy --all --all-features --tests -- -D clippy::all -D warnings | |
# There's bunch of platforms that have some weird quirks (or we don't know | |
# that they don't). While fully compiling and testing on them is a bit of a | |
# challenge, running cargo check on them should be easy enough and should | |
# catch at least some problems (like different sizes of types). | |
weird_platforms: | |
name: Check weird platforms | |
strategy: | |
fail-fast: false | |
matrix: | |
target: | |
- x86_64-unknown-linux-musl | |
- x86_64-pc-solaris | |
- x86_64-linux-android | |
- aarch64-linux-android | |
- arm-linux-androideabi | |
- mips-unknown-linux-musl | |
- x86_64-unknown-netbsd | |
- x86_64-unknown-freebsd | |
extra-args: | |
- "--all --all-features" | |
include: | |
# - wasm32-wasi (not yet? Or not ever?) | |
# - x86_64-unknown-redox (Is that platform even usable on stable?) | |
- { target: x86_64-fuchsia, extra-args: "--all-features" } | |
- { target: asmjs-unknown-emscripten, extra-args: "--all-features" } | |
# Seems we have some trouble with properly running C compiler on these. Might as well be problem with cross-compilation setup, but who knows | |
# So we avoid the exfiltrator part/signal-hook-sys :-( | |
- { target: x86_64-apple-darwin, extra-args: "--features=iterator --all --exclude signal-hook-sys" } | |
- { target: x86_64-apple-ios, extra-args: "--features=iterator --all --exclude signal-hook-sys" } | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout | |
uses: actions/checkout@v2 | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
profile: minimal | |
default: true | |
target: ${{ matrix.target }} | |
- name: Restore cache | |
uses: Swatinem/rust-cache@v1 | |
- name: Run the check | |
uses: actions-rs/cargo@v1 | |
with: | |
command: check | |
args: ${{ matrix.extra-args }} --tests --target=${{ matrix.target }} | |
use-cross: true |