Merge pull request #49 from baoyachi/code_refactor #143
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 -- -D warnings | |
- name: Build Release | |
run: cargo build --release | |
# build on nightly | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly | |
override: true | |
- name: Build on nightly | |
run: cargo build --release | |
# wasm check | |
- uses: jetli/[email protected] | |
with: | |
version: latest | |
- name: Setup wasm-pack | |
run: | | |
cargo b | |
wasm-pack build --target bundler | |
wasm-pack build --target web | |
working-directory: ./playground/wasm | |
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/[email protected] | |
with: | |
crate: cargo-tarpaulin | |
version: 0.14.2 | |
use-tool-cache: true | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Run tests | |
run: cargo test --all-features --all | |
- name: Run tests without default features. | |
run: cargo test --no-default-features | |
- name: Run examples with deserialize_duration | |
run: cargo run --example deserialize_duration | |
- name: Run examples with deserialize_duration_chrono | |
run: cargo run --example deserialize_duration_chrono | |
- name: Run examples with deserialize_duration_time | |
run: cargo run --example deserialize_duration_time | |
- 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 }} | |
deploy-pages: | |
if: github.actor!= 'dependabot[bot]' | |
runs-on: ubuntu-latest | |
needs: [ test ] | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- uses: pnpm/action-setup@v4 | |
name: Install pnpm | |
with: | |
version: 8 | |
run_install: false | |
- name: Install Rust and wasm-pack | |
run: | | |
rustup update stable | |
cargo +stable install wasm-pack | |
- name: Build WebAssembly module with wasm-pack | |
run: wasm-pack build --target bundler --out-dir ../site/pkg --release | |
working-directory: ./playground/wasm | |
- name: Build project | |
run: pnpm install && pnpm run build | |
working-directory: ./playground/site | |
- name: Deploy to GitHub Pages | |
uses: peaceiris/actions-gh-pages@v4 | |
if: ${{github.ref == 'refs/heads/master' }} | |
with: | |
personal_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: ./playground/site/dist | |
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 }} |