Hint IO in the SDK #2872
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: Lints | |
on: | |
merge_group: | |
pull_request: | |
types: [synchronize, opened, reopened, ready_for_review] | |
push: | |
branches: | |
- master | |
jobs: | |
skip_check: | |
runs-on: [self-hosted, Linux, X64] | |
outputs: | |
should_skip: ${{ steps.skip_check.outputs.should_skip }} | |
steps: | |
- id: skip_check | |
uses: fkirc/skip-duplicate-actions@v5 | |
with: | |
cancel_others: 'true' | |
concurrent_skipping: 'same_content_newer' | |
paths_ignore: '["**/README.md"]' | |
do_not_skip: '["pull_request", "workflow_dispatch", "schedule", "merge_group"]' | |
lints: | |
needs: [skip_check] | |
if: | | |
github.event.pull_request.draft == false && | |
(github.event.action == 'ready_for_review' || needs.skip_check.outputs.should_skip != 'true') | |
name: Various lints | |
timeout-minutes: 30 | |
runs-on: [self-hosted, Linux, X64] | |
strategy: | |
matrix: | |
target: [x86_64-unknown-linux-gnu, riscv32im-unknown-none-elf] | |
# Exclude the riscv32im-unknown-none-elf target | |
exclude: | |
- target: riscv32im-unknown-none-elf | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
components: rustfmt, clippy | |
targets: riscv32im-unknown-none-elf | |
# TODO(Matthias): see whether we can keep this in sync with rust-toolchain.toml automatically? | |
toolchain: nightly-2024-12-06 | |
- name: Cargo cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
examples/target/ | |
key: lint-${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- name: Install cargo make | |
run: | | |
cargo make --version || cargo install cargo-make | |
- name: Check code format | |
run: cargo make fmt-all-check | |
- name: Run clippy | |
env: | |
TARGET: ${{ matrix.target }} | |
RUSTFLAGS: "-Dwarnings" | |
run: | | |
cargo check --workspace --all-targets --exclude ceno_rt | |
# We have a lot of code under #[cfg(not(debug_assertions))] and similar, | |
# so we need to run cargo check in release mode, too: | |
cargo check --workspace --all-targets --exclude ceno_rt --release | |
cargo make clippy | |
# Same for clippy: | |
cargo clippy --workspace --all-targets --exclude ceno_rt --release | |
- name: Install taplo | |
run: taplo --version || cargo install taplo-cli | |
- name: Run taplo | |
run: taplo fmt --check --diff |