style: cargo fmt #633
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: CI | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
env: | |
CARGO_TERM_COLOR: always | |
CARGO_INCREMENTAL: 0 | |
CARGO_NET_RETRY: 10 | |
CI: 1 | |
RUST_BACKTRACE: short | |
RUSTFLAGS: "-D warnings -W unreachable-pub -W rust-2021-compatibility" | |
RUSTUP_MAX_RETRIES: 10 | |
jobs: | |
check: | |
# Run `cargo check` first to ensure that the pushed code at least compiles. | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
rust: [ stable ] | |
steps: | |
- uses: actions/checkout@master | |
- uses: dtolnay/rust-toolchain@beta | |
with: | |
toolchain: ${{ matrix.rust }} | |
components: clippy, rustfmt | |
- uses: Swatinem/rust-cache@v2 | |
- name: Check | |
uses: actions-rs/cargo@v1 | |
with: | |
command: clippy | |
args: --all --all-targets --all-features | |
- name: rustfmt | |
uses: actions-rs/cargo@v1 | |
with: | |
command: fmt | |
args: --all -- --check | |
test: | |
name: Rust | |
runs-on: ${{ matrix.os }} | |
env: | |
CC: deny_c | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
fetch-depth: 20 | |
# We need to disable the existing toolchain to avoid updating rust-docs | |
# which takes a long time. The fastest way to do this is to rename the | |
# existing folder, as deleting it takes about as much time as not doing | |
# anything and just updating rust-docs. | |
- name: Rename existing rust toolchain (Windows) | |
if: matrix.os == 'windows-latest' | |
run: Rename-Item C:\Users\runneradmin\.rustup\toolchains\stable-x86_64-pc-windows-msvc C:\Users\runneradmin\.rustup\toolchains\stable-x86_64-pc-windows-msvc.old | |
- name: Install Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
profile: minimal | |
override: true | |
components: rustfmt, rust-src | |
- name: Cache Dependencies | |
uses: Swatinem/rust-cache@ce325b60658c1b38465c06cc965b79baf32c1e72 | |
- name: Compile | |
run: cargo test --no-run --locked | |
- name: Test | |
run: cargo test -- --nocapture --quiet | |
# Weird targets to catch non-portable code | |
rust-cross: | |
name: Rust Cross | |
runs-on: ubuntu-latest | |
env: | |
targets: "powerpc64-unknown-linux-gnu x86_64-unknown-linux-musl" | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
- name: Install Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
profile: minimal | |
override: true | |
- name: Install Rust targets | |
run: rustup target add ${{ env.targets }} ${{ env.targets_ide }} | |
- name: Cache Dependencies | |
uses: Swatinem/rust-cache@ce325b60658c1b38465c06cc965b79baf32c1e72 | |
- name: Check | |
run: | | |
for target in ${{ env.targets }}; do | |
cargo check --target=$target --all-targets | |
done |