Skip to content

Merge pull request #157 from timmc/patch-1 #260

Merge pull request #157 from timmc/patch-1

Merge pull request #157 from timmc/patch-1 #260

Workflow file for this run

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