Merge pull request #303 from tgross35/rename-test-feature #153
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: [push, pull_request] | |
env: | |
RUSTDOCFLAGS: -Dwarnings | |
RUSTFLAGS: -Dwarnings | |
jobs: | |
docker: | |
name: Docker | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
target: | |
- aarch64-unknown-linux-gnu | |
- arm-unknown-linux-gnueabi | |
- arm-unknown-linux-gnueabihf | |
- armv7-unknown-linux-gnueabihf | |
# - i686-unknown-linux-gnu | |
# MIPS targets disabled since they are dropped to tier 3. | |
# See https://github.com/rust-lang/compiler-team/issues/648 | |
#- mips-unknown-linux-gnu | |
#- mips64-unknown-linux-gnuabi64 | |
#- mips64el-unknown-linux-gnuabi64 | |
- powerpc-unknown-linux-gnu | |
- powerpc64-unknown-linux-gnu | |
- powerpc64le-unknown-linux-gnu | |
- x86_64-unknown-linux-gnu | |
steps: | |
- uses: actions/checkout@master | |
- name: Install Rust | |
run: rustup update nightly && rustup default nightly | |
- run: rustup target add ${{ matrix.target }} | |
- run: rustup target add x86_64-unknown-linux-musl | |
- run: cargo generate-lockfile | |
- run: ./ci/run-docker.sh ${{ matrix.target }} | |
rustfmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@master | |
- name: Install Rust | |
run: rustup update stable && rustup default stable && rustup component add rustfmt | |
- run: cargo fmt -- --check | |
wasm: | |
name: WebAssembly | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@master | |
- name: Install Rust | |
run: rustup update nightly && rustup default nightly | |
- run: rustup target add wasm32-unknown-unknown | |
- run: cargo build --target wasm32-unknown-unknown | |
cb: | |
name: "The compiler-builtins crate works" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@master | |
- name: Install Rust | |
run: rustup update nightly && rustup default nightly | |
- run: cargo build -p cb | |
benchmarks: | |
name: Benchmarks | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@master | |
- name: Install Rust | |
run: rustup update nightly && rustup default nightly | |
- run: cargo bench --all | |
success: | |
needs: | |
- docker | |
- rustfmt | |
- wasm | |
- cb | |
- benchmarks | |
runs-on: ubuntu-latest | |
# GitHub branch protection is exceedingly silly and treats "jobs skipped because a dependency | |
# failed" as success. So we have to do some contortions to ensure the job fails if any of its | |
# dependencies fails. | |
if: always() # make sure this is never "skipped" | |
steps: | |
# Manually check the status of all dependencies. `if: failure()` does not work. | |
- name: check if any dependency failed | |
run: jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}' |