Skip to content

Update pypi upload action based on cibuildwheel example #440

Update pypi upload action based on cibuildwheel example

Update pypi upload action based on cibuildwheel example #440

Workflow file for this run

name: Build and upload Rust crate
# Build on every branch push, tag push, and pull request change:
on: [push, pull_request]
jobs:
check_fmt:
name: Check format
runs-on: ubuntu-20.04
steps:
- name: Checkout reposistory
uses: actions/checkout@v4
- name: Setup Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Check format
run: cargo fmt --check
check_clippy:
name: Check clippy lints
runs-on: ubuntu-20.04
steps:
- name: Checkout reposistory
uses: actions/checkout@v4
- name: Setup Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Setup clippy
run: rustup component add clippy
- name: Run clippy
run: |
cargo clippy --version
cargo clippy --all-targets --all-features -- -D warnings
run_tests:
name: Run Rust tests
runs-on: ubuntu-20.04
steps:
- name: Checkout reposistory
uses: actions/checkout@v4
- name: Setup Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Build Rust tests
run: cargo test --workspace
msrv:
runs-on: ubuntu-latest
steps:
- name: Checkout reposistory
uses: actions/checkout@v4
- name: Setup MSRV checker
uses: taiki-e/install-action@cargo-hack
# To find current MSRV use `cargo msrv find`. Install it with `cargo install cargo-msrv --locked`
- name: Run MSRV checker
run: cargo hack check --rust-version --workspace --all-targets --ignore-private
publish_crate:
name: Publish the crate!
runs-on: ubuntu-20.04
needs: [check_fmt, check_clippy, run_tests, msrv]
steps:
- name: Checkout reposistory
uses: actions/checkout@v4
- name: Setup Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Build Rust package
run: cargo build --release --workspace
- name: Publish dry run
if: github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')
run: cargo publish --dry-run
- name: Upload crate
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
run: cargo publish --token ${{ secrets.CARGO_REGISTRY_TOKEN }}