mirror of
https://github.com/tower-rs/tower.git
synced 2026-01-19 23:25:59 +00:00
CI is currently busted due to [issues with caching `cargo-hack`][1]. Currently, we cache the `cargo-hack` executable to speed up builds by avoiding the overhead of compiling it from source in every build. Recently, `cargo-hack` has started publishing binaries on GitHub Releases. Rather than compiling it on CI and caching it, we can just download the binary instead. This ought to fix the build. See also taiki-e/cargo-hack#89 and taiki-e/cargo-hack#91. [1]: https://github.com/tower-rs/tower/runs/1425940763
101 lines
2.5 KiB
YAML
101 lines
2.5 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request: {}
|
|
|
|
jobs:
|
|
check:
|
|
# Run `cargo check` first to ensure that the pushed code at least compiles.
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
rust: [stable, 1.40.0]
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: ${{ matrix.rust }}
|
|
profile: minimal
|
|
- name: Check
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: check
|
|
args: --all --all-targets --all-features
|
|
|
|
cargo-hack:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
profile: minimal
|
|
- name: Install cargo-hack
|
|
run: |
|
|
curl -LsSf https://github.com/taiki-e/cargo-hack/releases/latest/download/cargo-hack-x86_64-unknown-linux-gnu.tar.gz | tar xzf - -C ~/.cargo/bin
|
|
- name: cargo hack check
|
|
working-directory: ${{ matrix.subcrate }}
|
|
run: cargo hack check --each-feature --no-dev-deps --all
|
|
|
|
test-versions:
|
|
# Test against the stable, beta, and nightly Rust toolchains on ubuntu-latest.
|
|
needs: check
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
rust: [stable, beta, nightly, 1.40.0]
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: ${{ matrix.rust }}
|
|
profile: minimal
|
|
- name: Run tests
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: test
|
|
args: --all --all-features
|
|
|
|
style:
|
|
# Check style.
|
|
needs: check
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
components: rustfmt
|
|
profile: minimal
|
|
- name: rustfmt
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: fmt
|
|
args: --all -- --check
|
|
|
|
# warnings:
|
|
# # Check for any warnings. This is informational and thus is allowed to fail.
|
|
# runs-on: ubuntu-latest
|
|
# steps:
|
|
# - uses: actions/checkout@master
|
|
# - uses: actions-rs/toolchain@v1
|
|
# with:
|
|
# toolchain: stable
|
|
# components: clippy
|
|
# profile: minimal
|
|
# - name: Clippy
|
|
# uses: actions-rs/clippy-check@v1
|
|
# with:
|
|
# token: ${{ secrets.GITHUB_TOKEN }}
|
|
# args: --all --all-targets --all-features -- -D warnings
|
|
|
|
deny-check:
|
|
name: cargo-deny check
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- uses: EmbarkStudios/cargo-deny-action@v1
|