CI #196
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: | |
push: | |
branches: | |
- main | |
pull_request: | |
schedule: | |
- cron: '5 21 * * 5' | |
workflow_dispatch: | |
name: CI | |
jobs: | |
test: | |
name: Test | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
rust: [stable, nightly, '1.48'] | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install toolchain | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ matrix.rust }} | |
# Workaround link failures if XCode 14 is combined with Rust <= 1.53 | |
- name: Downgrade to XCode 13 | |
if: ${{ matrix.os == 'macos-latest' && matrix.rust == '1.48' }} | |
uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: '13' | |
- name: Setup cache | |
uses: Swatinem/rust-cache@v2 | |
- name: Test (no features) | |
run: cargo test --no-default-features | |
- name: Test (all features) | |
run: cargo test --all-features | |
wasi: | |
name: Test WASI | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install toolchain | |
uses: dtolnay/rust-toolchain@nightly | |
with: | |
targets: wasm32-wasi | |
- name: Install wasmtime | |
run: | | |
curl https://wasmtime.dev/install.sh -sSf | bash | |
echo "$HOME/.wasmtime/bin" >> $GITHUB_PATH | |
- name: Test (no features) | |
run: CARGO_TARGET_WASM32_WASI_RUNNER=wasmtime cargo test --target wasm32-wasi --no-default-features | |
- name: Test (all features) | |
run: CARGO_TARGET_WASM32_WASI_RUNNER=wasmtime cargo test --target wasm32-wasi --all-features | |
lints: | |
name: Rustfmt & Clippy | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
components: rustfmt, clippy | |
- name: Check formatting | |
run: cargo fmt --check | |
- name: Check clippy | |
run: cargo clippy -- -D warnings |