name: Cargo Build & Release
on:
push:
tags:
- 'v*.*.*'
workflow_dispatch:
permissions:
contents: write
pull-requests: write
env:
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: 0
CARGO_PROFILE_TEST_DEBUG: 0
CARGO_PROFILE_RELEASE_LTO: true
CARGO_PROFILE_RELEASE_CODEGEN_UNITS: 1
jobs:
cargo-release:
name: Cargo Build & Release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: Swatinem/rust-cache@v2
with:
cache-all-crates: true
- uses: taiki-e/install-action@nextest
- name: Install Rust Toolchain
run: rustup toolchain install
- name: Run platform tests run: cargo nextest run --all-features
- name: Release to cargo registry (crates.io) run: |
cargo install auto-release
auto-release -p tod
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}