Skip to content

Merge pull request #81 from chenzongyao200127/main #1

Merge pull request #81 from chenzongyao200127/main

Merge pull request #81 from chenzongyao200127/main #1

Workflow file for this run

name: Rust
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_dispatch:
env:
CARGO_UNSTABLE_SPARSE_REGISTRY: true
CARGO_TERM_COLOR: always
jobs:
fmt:
name: Rustfmt all packages
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: rustfmt
- name: Cache Dependencies
uses: Swatinem/rust-cache@v2
- name: Rustfmt Check
uses: actions-rust-lang/rustfmt@v1
build-rustsbi:
name: Build rustsbi
runs-on: ubuntu-latest
needs: fmt
strategy:
matrix:
TARGET: [riscv64imac-unknown-none-elf, riscv32imac-unknown-none-elf]
TOOLCHAIN: [stable, nightly]
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
target: ${{ matrix.TARGET }}
toolchain: ${{ matrix.TOOLCHAIN }}
- uses: Swatinem/rust-cache@v2
with:
key: ${{ matrix.TARGET }}
- name: Build (no default features)
run: |
cargo build --target ${{ matrix.TARGET }} --verbose
- name: Build (machine)
run: |
cargo build --target ${{ matrix.TARGET }} --verbose --features "machine"
- name: Build (forward)
run: |
cargo build --target ${{ matrix.TARGET }} --verbose --features "forward"
- name: Build (machine + forward)
run: |
cargo build --target ${{ matrix.TARGET }} --verbose --features "machine, forward"
test-rustsbi:
name: Test rustsbi
needs: fmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
- uses: Swatinem/rust-cache@v2
- name: Run tests (no default features)
run: |
cargo test -p rustsbi --verbose
- name: Run tests (machine)
run: |
cargo test -p rustsbi --verbose --features "machine"
# Don't run tests with rustsbi `forward` features on here: it requires RISC-V targets to build.
test-sbi-spec:
name: Test sbi-spec
needs: fmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
- uses: Swatinem/rust-cache@v2
# - name: Check clippy
# run: cargo clippy -- -D warnings
- name: Run tests
run: cargo test -p sbi-spec --verbose
build-sbi-rt:
name: Build sbi-rt
needs: fmt
runs-on: ubuntu-latest
strategy:
matrix:
TARGET: [riscv64imac-unknown-none-elf, riscv32imac-unknown-none-elf]
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
target: ${{ matrix.TARGET }}
toolchain: stable
- uses: Swatinem/rust-cache@v2
- name: Build
run: |
cargo build --target ${{ matrix.TARGET }} --verbose -p sbi-rt
build-sbi-testing:
name: Build sbi-testing
needs: fmt
runs-on: ubuntu-latest
strategy:
matrix:
TARGET: [riscv64imac-unknown-none-elf] #, riscv32imac-unknown-none-elf]
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
target: ${{ matrix.TARGET }}
toolchain: nightly
- uses: Swatinem/rust-cache@v2
- name: Build (no default features)
run: |
cargo build --target ${{ matrix.TARGET }} --verbose -p sbi-testing
- name: Build (log)
run: |
cargo build --target ${{ matrix.TARGET }} --verbose -p sbi-testing --features "log"
# sbi-testing:
# name: Run rust-clippy analyzing
# runs-on: ubuntu-latest
# permissions:
# security-events: write
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
# - name: Check format
# run: cargo fmt --check
# - name: Install clippy-sarif
# uses: actions-rs/install@v0.1
# with:
# crate: clippy-sarif
# version: latest
# - name: Install sarif-fmt
# uses: actions-rs/install@v0.1
# with:
# crate: sarif-fmt
# version: latest
# - name: Run rust-clippy
# run:
# cargo clippy
# --all-featuers
# --package fast-trap
# --message-format=json | clippy-sarif | tee rust-clippy-results.sarif | sarif-fmt
# continue-on-error: true
# - name: Upload analysis results to GitHub
# uses: github/codeql-action/upload-sarif@v2
# with:
# sarif_file: rust-clippy-results.sarif
# wait-for-processing: true