Skip to content

Merge pull request #347 from Jazzinghen/jazz/add_features_to_pyproject #618

Merge pull request #347 from Jazzinghen/jazz/add_features_to_pyproject

Merge pull request #347 from Jazzinghen/jazz/add_features_to_pyproject #618

Workflow file for this run

name: Test Workflow
on:
push:
branches:
- master
tags:
- "*"
pull_request:
workflow_dispatch:
env:
RUST_BACKTRACE: 1
jobs:
check:
name: Check
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
- name: Run cargo check
run: cargo check
test:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
rust:
- { version: "1.77", name: MSRV }
- { version: stable, name: stable }
runs-on: ${{ matrix.os }}
name: Test Suite (${{ matrix.os }}, ${{ matrix.rust.name }})
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install ${{ matrix.rust.name }} toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust.version }}
- name: Test (default features)
run: cargo test
- name: Test (UT1)
run: cargo test --features ut1
- name: Test (no default features)
run: cargo test --no-default-features
- name: Test (serde)
run: cargo test --features serde
test_no_std:
strategy:
matrix:
target: [aarch64-unknown-none, thumbv6m-none-eabi]
name: no-std build
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install nightly toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly
components: rust-src
- name: Build no default features + no_std target ${{ matrix.target }}
run: cargo build --no-default-features --target=${{ matrix.target }} -Z build-std=core
lints:
name: Lints
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.77
components: rustfmt, clippy
- name: Run cargo fmt
run: cargo fmt --all -- --check
- name: Run cargo clippy
run: cargo clippy -- -D warnings
coverage:
name: Coverage
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
components: rustfmt, clippy
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: Generate coverage report
run: |
cargo llvm-cov clean --workspace
cargo llvm-cov test --no-report --features=std -- --test-threads=1
cargo llvm-cov test --no-report --tests --features=std -- compile_fail
cargo llvm-cov report --lcov > lcov.txt
env:
RUSTFLAGS: --cfg __ui_tests
- name: Upload coverage report
uses: codecov/codecov-action@v4
with:
files: ./lcov.txt
release:
name: Release
runs-on: ubuntu-latest
needs: [check, test, test_no_std, lints, coverage]
if: github.ref_type == 'tag'
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
components: rustfmt, clippy
- name: Publish to crates.io
env:
TOKEN: ${{ secrets.CRATESIO_API_TOKEN }}
run: |
cargo login $TOKEN
cargo publish