ci: add benching #281
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
merge_group: | |
branches: [ main ] | |
env: | |
CARGO_TERM_COLOR: always | |
RUST_NIGHTLY_TOOLCHAIN: nightly-2024-03-24 | |
jobs: | |
machete: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install cargo-machete | |
uses: taiki-e/install-action@v2 | |
with: | |
tool: cargo-machete | |
- name: Run cargo machete | |
run: | | |
cargo machete | |
# todo: [CI] re-enable docker | |
# docker: | |
# runs-on: ubuntu-latest | |
# needs: [ machete, fmt, clippy, clippy-macos, deny ] | |
# steps: | |
# - name: Set up Docker Buildx | |
# uses: docker/setup-buildx-action@v3 | |
# | |
# - name: Build and push | |
# uses: docker/build-push-action@v5 | |
# with: | |
# cache-from: type=gha | |
# cache-to: type=gha,mode=max | |
# outputs: type=local,dest=/tmp/server | |
# | |
# - name: Upload Docker image as artifact | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: server | |
# path: /tmp/server | |
# todo: [CI] re-enable test | |
# test: | |
# runs-on: ubuntu-latest | |
# | |
# steps: | |
# - name: Checkout repository | |
# uses: actions/checkout@v4 | |
# | |
# - name: Setup Rust toolchain and cache | |
# uses: actions-rust-lang/setup-rust-toolchain@v1 | |
# with: | |
# toolchain: ${{ env.RUST_NIGHTLY_TOOLCHAIN }} | |
# | |
# - name: Run cargo test | |
# run: cargo test --workspace --all-features | |
deny: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install cargo-deny | |
uses: taiki-e/install-action@v2 | |
with: | |
tool: cargo-deny | |
- name: Run cargo deny | |
run: | | |
cargo deny check -D warnings | |
fmt: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ env.RUST_NIGHTLY_TOOLCHAIN }} | |
components: rustfmt | |
- uses: Swatinem/rust-cache@v2 | |
- name: Run rustfmt | |
run: | | |
cargo fmt --all -- --check | |
docs: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ env.RUST_NIGHTLY_TOOLCHAIN }} | |
- uses: Swatinem/rust-cache@v2 | |
- name: Run cargo doc | |
run: | | |
cargo doc --workspace --no-deps --all-features | |
env: | |
RUSTDOCFLAGS: -D warnings | |
clippy: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Setup Rust toolchain and cache | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ env.RUST_NIGHTLY_TOOLCHAIN }} | |
components: clippy | |
- uses: Swatinem/rust-cache@v2 | |
- name: Clippy check | |
run: cargo clippy --workspace --benches --tests --examples --all-features -- -D warnings | |
# clippy-macos: | |
# runs-on: macos-latest | |
# steps: | |
# - name: Checkout repository | |
# uses: actions/checkout@v4 | |
# | |
# - name: Setup Rust toolchain and cache | |
# uses: dtolnay/rust-toolchain@master | |
# with: | |
# toolchain: ${{ env.RUST_NIGHTLY_TOOLCHAIN }} | |
# components: clippy | |
# | |
# - uses: Swatinem/rust-cache@v2 | |
# | |
# - name: Clippy check | |
# run: cargo clippy --workspace --benches --tests --examples --all-features -- -D warnings | |