CI #1852
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 | |
schedule: | |
- cron: '0 1 * * *' | |
jobs: | |
main: | |
name: Main | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v2 | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly | |
profile: minimal | |
override: true | |
components: clippy | |
# Do *not* use `--all-features` here, as the optional dependencies take a | |
# long time to build, and will be tested in the "examples" job anyway | |
- name: Run tests | |
run: cargo test --workspace --all-targets | |
- name: Check Clippy | |
run: cargo clippy --workspace --all-targets -- -D warnings | |
# Please keep this in sync with `publish-docs.yml` | |
documentation: | |
name: Documentation | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v2 | |
with: | |
# Documentation build uses `git describe` which requires history | |
fetch-depth: 0 | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly | |
profile: minimal | |
override: true | |
components: clippy | |
- name: Build documentation | |
run: cd docs && make -j$(nproc) | |
- name: Check Clippy | |
run: cd docs && cargo clippy --all-targets -- -D warnings | |
doctest: | |
name: Doctest | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v2 | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly | |
profile: minimal | |
override: true | |
- name: Doctest | |
run: cd doctest && cargo test | |
rustfmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v2 | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
# Nightly rustfmt is needed for the `imports_granularity` option | |
toolchain: nightly | |
profile: minimal | |
override: true | |
components: rustfmt | |
- name: Check formatting | |
run: | | |
cargo fmt -- --check | |
(cd docs && cargo fmt -- --check) | |
# trybuild harnesses are technically not part of the Cargo project, so | |
# need to be checked separately | |
rustfmt --check maud/tests/warnings/*.rs |