add unit test coverage #103
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@v2 | |
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 | |
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: 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 }} | |
publish-crate: | |
if: startsWith(github.ref, 'refs/tags/v') | |
runs-on: ubuntu-latest | |
needs: [ build ] | |
steps: | |
- name: Set up Rust | |
uses: hecrj/setup-rust-action@v1 | |
- uses: actions/checkout@v3 | |
- name: Publish | |
shell: bash | |
run: | | |
cargo publish --token ${{ secrets.CRATES_GITHUB_TOKEN }} |