Skip to content

Skip CI when no code changes (e.g. .rs, .toml, or any other file affecting compilation) are made. #1065

Skip CI when no code changes (e.g. .rs, .toml, or any other file affecting compilation) are made.

Skip CI when no code changes (e.g. .rs, .toml, or any other file affecting compilation) are made. #1065

Workflow file for this run

on:
push:
branches: [ master ]
paths-ignore:
- "**/*.md"
- "README*"
- "LICENSE*"
pull_request:
paths-ignore:
- "**/*.md"
- "README*"
- "LICENSE*"
merge_group:
paths-ignore:
- "**/*.md"
- "README*"
- "LICENSE*"
name: Build check (riscv)
jobs:
# We check that the crate builds and links for all the toolchains and targets.
build-riscv:
strategy:
matrix:
# All generated code should be running on stable now, MRSV is 1.81.0
toolchain: [ stable, nightly, 1.81.0 ]
target:
- riscv32i-unknown-none-elf
- riscv32imc-unknown-none-elf
- riscv32imac-unknown-none-elf
- riscv64imac-unknown-none-elf
- riscv64gc-unknown-none-elf
include:
# Nightly is only for reference and allowed to fail
- toolchain: nightly
experimental: true
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.experimental || false }}
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.toolchain }}
targets: ${{ matrix.target }}
- name: Build (M-mode)
run: cargo build --package riscv --target ${{ matrix.target }}
- name: Build (M-mode, critical section)
run: cargo build --package riscv --target ${{ matrix.target }} --features=critical-section-single-hart
- name: Build (S-mode)
run: cargo build --package riscv --target ${{ matrix.target }} --features=s-mode
- name: Build (all features)
run: cargo build --package riscv --target ${{ matrix.target }} --all-features
# On MacOS, Ubuntu, and Windows, we run tests.
build-others:
strategy:
matrix:
os: [ macos-latest, ubuntu-latest, windows-latest ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
- name: Test (no features)
run: cargo test --package riscv
- name: Test (all features)
run: cargo test --package riscv --all-features
# Job to check that all the builds succeeded
build-check:
needs:
- build-riscv
- build-others
runs-on: ubuntu-latest
if: always()
steps:
- run: jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}'