blob: affe1181cc48ac34c3d9dcfe8b98504b8a50e2f6 [file] [log] [blame]
name: CI
on:
pull_request:
push:
branches:
- master
- staging
schedule:
- cron: '0 1 * * *'
env:
RUSTFLAGS: -Dwarnings
RUST_BACKTRACE: 1
defaults:
run:
shell: bash
jobs:
test:
name: test
strategy:
matrix:
rust:
# This is the minimum supported Rust version of this crate.
# When updating this, the reminder to update the minimum supported Rust version in README.md.
- 1.31.0
- 1.33.0
- 1.39.0
- 1.46.0
- stable
- beta
- nightly
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install Rust
run: ci/install-rust.sh ${{ matrix.rust }}
- if: matrix.rust == 'nightly'
run: cargo install cargo-hack
- run: cargo test --all
- if: matrix.rust == 'nightly'
run: bash scripts/check-minimal-versions.sh
clippy:
name: clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install Rust and Clippy
run: ci/install-component.sh clippy
- run: cargo clippy --all --all-features --all-targets
rustfmt:
name: rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install Rust and Rustfmt
run: ci/install-component.sh rustfmt
- run: cargo fmt --all -- --check
rustdoc:
name: rustdoc
env:
RUSTDOCFLAGS: -Dwarnings
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install Rust
run: ci/install-rust.sh
- run: cargo doc --no-deps --all --all-features
shellcheck:
name: shellcheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: shellcheck **/*.sh
# These jobs don't actually test anything, but they're used to tell bors the
# build completed, as there is no practical way to detect when a workflow is
# successful listening to webhooks only.
#
# ALL THE PREVIOUS JOBS NEEDS TO BE ADDED TO THE `needs` SECTION OF THIS JOB!
ci-success:
name: ci
if: github.event_name == 'push' && success()
needs:
- test
- clippy
- rustfmt
- rustdoc
- shellcheck
runs-on: ubuntu-latest
steps:
- name: Mark the job as a success
run: exit 0
ci-failure:
name: ci
if: github.event_name == 'push' && !success()
needs:
- test
- clippy
- rustfmt
- rustdoc
- shellcheck
runs-on: ubuntu-latest
steps:
- name: Mark the job as a failure
run: exit 1