|
|
@ -0,0 +1,95 @@ |
|
|
|
name: Continuous Integration |
|
|
|
|
|
|
|
on: |
|
|
|
push: |
|
|
|
branches: [main] |
|
|
|
pull_request: |
|
|
|
branches: |
|
|
|
- "**" |
|
|
|
workflow_dispatch: |
|
|
|
branches: |
|
|
|
- "**" |
|
|
|
|
|
|
|
jobs: |
|
|
|
test: |
|
|
|
name: Test Suite |
|
|
|
runs-on: ubuntu-latest |
|
|
|
if: "! contains(toJSON(github.event.commits.*.message), '[skip-ci]')" |
|
|
|
steps: |
|
|
|
- name: Checkout sources |
|
|
|
uses: actions/checkout@v2 |
|
|
|
|
|
|
|
- name: Install nightly toolchain |
|
|
|
id: rustc-toolchain |
|
|
|
uses: actions-rs/toolchain@v1 |
|
|
|
with: |
|
|
|
profile: minimal |
|
|
|
toolchain: nightly |
|
|
|
override: true |
|
|
|
|
|
|
|
- name: rust-cache |
|
|
|
uses: actions/cache@v3 |
|
|
|
with: |
|
|
|
path: | |
|
|
|
~/.cargo/bin/ |
|
|
|
~/.cargo/registry/index/ |
|
|
|
~/.cargo/registry/cache/ |
|
|
|
~/.cargo/git/db/ |
|
|
|
target/ |
|
|
|
key: rustc-test-${{ steps.rustc-toolchain.outputs.rustc_hash }}-cargo-${{ hashFiles('**/Cargo.toml') }} |
|
|
|
|
|
|
|
- name: Run cargo test |
|
|
|
uses: actions-rs/cargo@v1 |
|
|
|
with: |
|
|
|
command: test |
|
|
|
args: --workspace |
|
|
|
env: |
|
|
|
RUSTFLAGS: -Copt-level=3 -Cdebug-assertions -Coverflow-checks=y -Cdebuginfo=0 |
|
|
|
RUST_LOG: 1 |
|
|
|
CARGO_INCREMENTAL: 1 |
|
|
|
RUST_BACKTRACE: 1 |
|
|
|
|
|
|
|
lints: |
|
|
|
name: Formatting and Clippy |
|
|
|
runs-on: ubuntu-latest |
|
|
|
if: "! contains(toJSON(github.event.commits.*.message), '[skip-ci]')" |
|
|
|
steps: |
|
|
|
- name: Checkout sources |
|
|
|
uses: actions/checkout@v2 |
|
|
|
|
|
|
|
- name: Install nightly toolchain |
|
|
|
id: rustc-toolchain |
|
|
|
uses: actions-rs/toolchain@v1 |
|
|
|
with: |
|
|
|
profile: minimal |
|
|
|
toolchain: nightly |
|
|
|
override: true |
|
|
|
components: rustfmt, clippy |
|
|
|
|
|
|
|
- name: rust-cache |
|
|
|
uses: actions/cache@v3 |
|
|
|
with: |
|
|
|
path: | |
|
|
|
~/.cargo/bin/ |
|
|
|
~/.cargo/registry/index/ |
|
|
|
~/.cargo/registry/cache/ |
|
|
|
~/.cargo/git/db/ |
|
|
|
target/ |
|
|
|
key: rustc-lints-${{ steps.rustc-toolchain.outputs.rustc_hash }}-cargo-${{ hashFiles('**/Cargo.toml') }} |
|
|
|
|
|
|
|
- name: Run cargo fmt |
|
|
|
uses: actions-rs/cargo@v1 |
|
|
|
with: |
|
|
|
command: fmt |
|
|
|
args: --all -- --check |
|
|
|
env: |
|
|
|
CARGO_INCREMENTAL: 1 |
|
|
|
|
|
|
|
- name: Run cargo clippy |
|
|
|
uses: actions-rs/cargo@v1 |
|
|
|
with: |
|
|
|
command: clippy |
|
|
|
args: --all-features --all-targets -- -D warnings -A incomplete-features |
|
|
|
env: |
|
|
|
# Seems necessary until https://github.com/rust-lang/rust/pull/115819 is merged. |
|
|
|
CARGO_INCREMENTAL: 0 |