feat: custom directives #213
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
on: [pull_request] | |
name: check | |
jobs: | |
# Fast test before we kick off all the other jobs | |
fast-test: | |
name: Fast test | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Cache build files | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
target | |
key: fast-test-${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.toml') }} | |
- name: Install toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
override: true | |
- name: Install more toolchain | |
run: rustup component add rustfmt clippy | |
- name: Run tests | |
run: cargo clippy --all-targets -- -D warnings && cargo fmt -- --check && cargo test | |
# Test, and also do other things like doctests and examples | |
detailed-test: | |
needs: fast-test | |
name: Test main target | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Cache build files | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
target | |
~/.cargo/bin | |
cargo_target | |
key: detailed-test-${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.toml') }} | |
- name: Install toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
override: true | |
- name: Install node toolchain | |
uses: actions/setup-node@v3 | |
with: | |
node-version: "20" | |
cache: "yarn" | |
cache-dependency-path: compile_assets/yarn.lock | |
- name: Install additional test dependencies | |
env: | |
CARGO_TARGET_DIR: cargo_target | |
run: ./scripts/install | |
- name: Run check script | |
run: ./scripts/check | |
# Test on all supported platforms | |
test: | |
needs: fast-test | |
name: Test all other targets | |
strategy: | |
matrix: | |
os: | |
- ubuntu-20.04 | |
# - windows-2019 | |
rust: | |
- stable | |
- beta | |
- 1.66.0 | |
experimental: | |
- false | |
# Run a canary test on nightly that's allowed to fail | |
include: | |
- os: ubuntu-20.04 | |
rust: nightly | |
experimental: true | |
# Don't bother retesting stable linux, we did it in the comprehensive test | |
exclude: | |
- os: ubuntu-20.04 | |
rust: stable | |
experimental: false | |
runs-on: ${{ matrix.os }} | |
continue-on-error: ${{ matrix.experimental }} | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Cache build files | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
target | |
key: test-${{ matrix.os }}-${{ matrix.rust }}-cargo-${{ hashFiles('**/Cargo.toml') }} | |
- name: Install toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.rust }} | |
override: true | |
- name: Run tests | |
run: cargo test |