name: "Rust Test Suite"
on:
pull_request:
push:
branches-ignore: ["pr/**"]
tags: ["**"]
workflow_dispatch:
defaults:
run:
shell: "bash"
jobs:
ci:
name: "Default - rust-${{ matrix.rust }}@${{ matrix.os }}"
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest"]
rust: ["nightly", "stable"]
runs-on: ${{ matrix.os }}
steps:
- name: "Fetch Sources"
uses: actions/checkout@v3
- name: "Install Rust Components"
run: rustup default "${{ matrix.rust }}"
- name: "Build Project"
run: cargo build --verbose --all-targets
- name: "Run Tests"
run: cargo test --verbose
ci-cross:
name: "Cross-Compilation - ${{ matrix.target }}/rust-${{ matrix.rust }}@${{ matrix.os }}"
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest"]
rust: ["nightly", "stable"]
target:
- "aarch64-unknown-uefi"
- "i686-unknown-uefi"
- "x86_64-unknown-uefi"
runs-on: ${{ matrix.os }}
steps:
- name: "Fetch Sources"
uses: actions/checkout@v3
- name: "Install Rust Components"
run: |
rustup default "${{ matrix.rust }}"
rustup target add --toolchain "${{ matrix.rust }}" "${{ matrix.target }}"
- name: "Build Project"
run: |
cargo build \
--examples \
--features native \
--lib \
--target "${{ matrix.target }}" \
--verbose
ci-bootstrap:
name: "Bootstrap - ${{ matrix.target }}/rust-${{ matrix.rust }}@${{ matrix.os }}"
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest"]
rust: ["nightly"]
target:
- "aarch64-unknown-uefi"
- "i686-unknown-uefi"
- "x86_64-unknown-uefi"
runs-on: ${{ matrix.os }}
steps:
- name: "Fetch Sources"
uses: actions/checkout@v3
- name: "Install Rust Components"
run: |
rustup default "${{ matrix.rust }}"
rustup component add --toolchain "${{ matrix.rust }}" rust-src
- name: "Build Project"
run: |
cargo build \
-Zbuild-std=core,compiler_builtins,alloc \
-Zbuild-std-features=compiler-builtins-mem \
--examples \
--features native \
--lib \
--target "${{ matrix.target }}" \
--verbose