Skip to content

Bump version to 0.3.0 #67

Bump version to 0.3.0

Bump version to 0.3.0 #67

Workflow file for this run

on:
pull_request:
branches: [main]
push:
branches: [main]
release:
types: [published]
name: CI
env:
RUSTFLAGS: "-D warnings"
RUST_BACKTRACE: 1
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: thumbv7em-none-eabihf
- name: Build
run: cargo +stable build --all-features
build_examples:
name: Build examples
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install nightly toolchain
uses: dtolnay/rust-toolchain@nightly
with:
targets: thumbv7em-none-eabihf
- name: Build
run: cargo build --all-features --examples
build_examples_release:
name: Build examples (release)
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install nightly toolchain
uses: dtolnay/rust-toolchain@nightly
with:
targets: thumbv7em-none-eabihf
- name: Build
run: cargo build --all-features --examples --release
tests:
name: Run tests (x86_64)
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Enable test harness
run: sed -i '/harness = false/c\#harness = false' Cargo.toml
- name: Run tests
run: cargo +stable test --lib --all-features --target=x86_64-unknown-linux-gnu
lints:
name: Lints
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
targets: thumbv7em-none-eabihf
- name: Install nightly toolchain
uses: dtolnay/rust-toolchain@nightly
with:
components: clippy
targets: thumbv7em-none-eabihf
- name: Run cargo fmt
run: cargo +stable fmt --all -- --check
- name: Run cargo clippy
run: cargo clippy --all-features --examples --lib --bins -- -D warnings
docs:
name: Documentation
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install nightly toolchain
uses: dtolnay/rust-toolchain@nightly
with:
targets: thumbv7em-none-eabihf
- name: Run cargo doc
env:
RUSTDOCFLAGS: "-Dwarnings"
run: cargo doc --no-deps --all-features
msrv:
name: Minimum Supported Rust Version, based on min dependency versions
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install nightly toolchain
uses: dtolnay/rust-toolchain@nightly
- name: Install dependencies
uses: taiki-e/install-action@v2
with:
tool: cargo-hack, cargo-minimal-versions, cargo-binstall
- name: Install cargo-msrv
run: cargo binstall --version 0.16.0-beta.22 --no-confirm cargo-msrv
- name: Check with minimal versions
# To find out the current MSRV, remove the `rust-version` entry from `Cargo.toml` and run:
# run: cargo minimal-versions msrv --output-format json --all-features --target=thumbv7em-none-eabihf --log-target=stdout --log-level debug
run: cargo minimal-versions msrv --output-format json --all-features --target thumbv7em-none-eabihf verify
semver:
name: Semantic Versioning
runs-on: ubuntu-latest
env:
# No idea why this fixes the check.
RUSTFLAGS: "--cap-lints=warn"
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: thumbv7em-none-eabihf
- name: Check semver
uses: obi1kenobi/cargo-semver-checks-action@v2
with:
feature-group: "all-features"
release:
name: Publish version
runs-on: ubuntu-latest
environment: production
if: github.event_name == 'release'
needs: [build_examples, build_examples_release, tests, lints, docs, msrv, semver]
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: thumbv7em-none-eabihf
- name: Query crate version
run: echo "crate_version=$(cargo metadata --format-version=1 --no-deps | python -c "import sys,json; print('v' + json.load(sys.stdin)['packages'][0]['version'])")" >> $GITHUB_ENV
- name: Query release tag version
run: echo "release_tag_version=${{ github.event.release.name }}" >> $GITHUB_ENV
- name: Print versions
run: echo "Crate - ${{ env.crate_version }}, Release - ${{ env.release_tag_version }}"
- name: Check version not empty
run: test -n ${{ env.crate_version }}
- name: Check matching versions
run: test ${{ env.crate_version }} = ${{ env.release_tag_version }}
- name: Cargo login
run: cargo login ${{ secrets.CRATES_IO_TOKEN }}
- name: Cargo publish
run: cargo publish --all-features