mirror of
https://github.com/italicsjenga/valence.git
synced 2024-12-24 23:11:29 +11:00
4c0f070d27
Added a caching layer to the CI This creates a cache on first run (should exist because of this pr now) The hash is calculated from the Cargo.toml files (recursively if i've done it correctly) So whenever a Cargo.toml file changes, it invalidates the cache. Local crates are _not_ cached, so they get recompiled regardless, but it already shaves off like half the total time from the action runners.
51 lines
1.5 KiB
YAML
51 lines
1.5 KiB
YAML
name: Rust
|
|
|
|
on:
|
|
push:
|
|
branches: [ "main" ]
|
|
pull_request:
|
|
branches: [ "main" ]
|
|
|
|
env:
|
|
CARGO_TERM_COLOR: always
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-latest, windows-latest, macos-11]
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
components: clippy, rustfmt
|
|
- run: cp crates/playground/src/playground.template.rs crates/playground/src/playground.rs
|
|
- name: Set up cargo cache
|
|
uses: actions/cache@v3
|
|
continue-on-error: false
|
|
with:
|
|
path: |
|
|
~/.cargo/bin/
|
|
~/.cargo/registry/index/
|
|
~/.cargo/registry/cache/
|
|
~/.cargo/git/db/
|
|
target/
|
|
key: ${{ runner.os }}-cargo-target-${{ hashFiles('**/Cargo.toml') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-cargo-target-${{ hashFiles('**/Cargo.toml') }}
|
|
${{ runner.os }}-cargo-target
|
|
- name: Validate formatting
|
|
run: cargo fmt --all -- --check
|
|
- name: Validate documentation
|
|
run: cargo doc --workspace --no-deps --all-features --document-private-items
|
|
- name: Run clippy lints
|
|
run: cargo clippy --workspace --no-deps --all-features --all-targets -- -D warnings
|
|
- name: Run tests
|
|
run: cargo test --workspace --all-features --all-targets
|
|
- name: Run valence_nbt tests without preserve_order feature
|
|
run: cargo test -p valence_nbt --all-targets
|