Skip to content

Workflow file for this run

name: Rust
on:
pull_request:
branches: [ "main" ]
release:
types: [ published ]
env:
CARGO_TERM_COLOR: always
jobs:
test:
if: github.event_name != 'release'
strategy:
fail-fast: false
matrix:
os: [macos-latest, windows-latest, ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- name: checkout
uses: actions/checkout@v4
- name: toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
override: true
- name: test
run: cargo test --color always --verbose
env:
CARGO_INCREMENTAL: '0'
RUSTFLAGS: '-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests'
RUSTDOCFLAGS: '-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests'
- name: hack
if: runner.os == 'Linux'
run: cp -r * ../
- name: grcov
if: runner.os == 'Linux'
uses: actions-rs/grcov@v0.1.6
- name: codecov
if: runner.os == 'Linux'
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: true
flags: rust
verbose: true
checks:
if: github.event_name != 'release'
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- name: checkout
uses: actions/checkout@v4
- name: tree
run: cargo tree --color always --edges normal
- name: build
run: cargo build --color always --release --verbose
- name: clippy
run: cargo clippy --color always --release -- -D warnings
- name: bench
run: cargo bench --color always --verbose
- name: doc
run: cargo doc --color always --release --verbose
- name: package
run: cargo package --color always --verbose
publish:
if: github.event_name == 'release'
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
- name: package
run: cargo package --color always --verbose
- name: login
run: cargo login ${{ secrets.CRATES_IO_TOKEN }}
- name: publish
run: cargo publish --color always --verbose