Merge pull request #178 from baoyachi/issue/151 #548
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
name: check | |
on: | |
push: | |
branches: | |
- "*" | |
tags: | |
- "*" | |
pull_request: | |
branches: | |
- "*" | |
jobs: | |
build: | |
strategy: | |
matrix: | |
os: | |
- ubuntu-latest | |
- macos-latest | |
- windows-latest | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
override: true | |
components: clippy, rustfmt | |
- name: Check format | |
run: cargo fmt --all -- --check | |
- name: Check fix | |
run: cargo fix && cargo fix | |
- name: Check with clippy | |
run: cargo clippy --all-targets --all-features -- -D warnings | |
- name: Build Release | |
run: cargo build --release | |
- name: Run tests | |
run: cargo test --all -- --nocapture | |
# Run examples with debug | |
- name: Run examples with debug | |
run: cargo run --example builtin_fn | |
# Run examples with debug | |
- name: Run examples with release | |
run: cargo run --example builtin_fn | |
# example_shadow check | |
- name: Check example_shadow | |
run: | | |
cargo fmt --all -- --check | |
cargo clippy --all -- -D warnings | |
cargo run | |
working-directory: ./example_shadow | |
# example_shadow_hook check | |
- name: Check example_shadow_hook | |
run: | | |
cargo fmt --all -- --check | |
cargo clippy --all -- -D warnings | |
cargo run | |
working-directory: ./example_shadow_hook | |
# example_wasm check | |
- uses: jetli/wasm-pack-action@v0.4.0 | |
with: | |
version: latest | |
- name: Setup wasm-pack | |
run: | | |
cargo b | |
wasm-pack build --target bundler | |
wasm-pack build --target web | |
working-directory: ./example_wasm | |
# build on nightly | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly | |
override: true | |
components: clippy | |
- name: Build on nightly | |
run: | | |
cargo build --release | |
cargo +nightly clippy --all --all-features -- -D warnings | |
test: | |
strategy: | |
matrix: | |
rust: [ stable, beta, nightly ] | |
runs-on: ubuntu-latest | |
needs: [ build ] | |
steps: | |
- name: Setup Rust | |
uses: hecrj/setup-rust-action@v2 | |
with: | |
rust-version: ${{ matrix.rust }} | |
- name: Install Tarpaulin | |
uses: actions-rs/install@v0.1 | |
with: | |
crate: cargo-tarpaulin | |
version: 0.14.2 | |
use-tool-cache: true | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
run: | | |
cargo test --all-features | |
cargo test --examples | |
- name: Coverage | |
if: matrix.rust == 'stable' | |
run: cargo tarpaulin -o Lcov --output-dir ./coverage | |
- name: Coveralls | |
if: matrix.rust == 'stable' | |
continue-on-error: true | |
uses: coverallsapp/github-action@master | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
publish-crate: | |
if: startsWith(github.ref, 'refs/tags/v') | |
runs-on: ubuntu-latest | |
needs: [ test ] | |
steps: | |
- name: Set up Rust | |
uses: hecrj/setup-rust-action@v2 | |
- uses: actions/checkout@v4 | |
- name: Publish | |
shell: bash | |
run: | | |
cargo publish --token ${{ secrets.CRATES_GITHUB_TOKEN }} |