refactor: scheduler, context switching and signal handling #1205
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: Check | |
on: [push] | |
jobs: | |
clippy: | |
runs-on: [self-hosted, linux] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Macros | |
working-directory: macros | |
run: cargo clippy --all-features --all-targets | |
- name: Utils | |
working-directory: utils | |
run: cargo clippy --all-features --all-targets | |
- name: Kernel | |
working-directory: kernel | |
run: | | |
cp default.build-config.toml build-config.toml | |
cargo clippy --all-features --all-targets | |
- name: Integration tests | |
working-directory: inttest | |
run: cargo clippy --all-features --all-targets | |
format: | |
runs-on: [self-hosted, linux] | |
needs: clippy | |
steps: | |
- name: Macros | |
working-directory: macros | |
run: cargo fmt --check | |
- name: Utils | |
working-directory: utils | |
run: cargo fmt --check | |
- name: Kernel | |
working-directory: kernel | |
run: cargo fmt --check | |
- name: Integration tests | |
working-directory: inttest | |
run: cargo fmt --check | |
book: | |
runs-on: [self-hosted, linux] | |
needs: clippy | |
steps: | |
- name: Build book | |
run: mdbook build doc/ | |
documentation: | |
runs-on: [self-hosted, linux] | |
needs: clippy | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: ["x86", "x86_64"] | |
steps: | |
- name: Build references | |
working-directory: kernel | |
run: cargo doc --target arch/${{ matrix.arch }}/${{ matrix.arch }}.json | |
build: | |
runs-on: [self-hosted, linux] | |
needs: clippy | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: ["x86", "x86_64"] | |
steps: | |
- name: Debug | |
working-directory: kernel | |
run: cargo build --target arch/${{ matrix.arch }}/${{ matrix.arch }}.json | |
- name: Check Multiboot2 (debug) | |
working-directory: kernel | |
run: grub-file --is-x86-multiboot2 target/${{ matrix.arch }}/debug/maestro | |
- name: Release | |
working-directory: kernel | |
run: cargo build --target arch/${{ matrix.arch }}/${{ matrix.arch }}.json --release | |
- name: Check Multiboot2 (release) | |
working-directory: kernel | |
run: grub-file --is-x86-multiboot2 target/${{ matrix.arch }}/release/maestro | |
strace: | |
runs-on: [self-hosted, linux] | |
needs: build | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: ["x86", "x86_64"] | |
steps: | |
- name: Build | |
working-directory: kernel | |
run: cargo build --target arch/${{ matrix.arch }}/${{ matrix.arch }}.json --features strace | |
- name: Check Multiboot2 for x86 | |
working-directory: kernel | |
run: grub-file --is-x86-multiboot2 target/x86/debug/maestro | |
miri: | |
runs-on: [self-hosted, linux] | |
needs: build | |
steps: | |
- name: Utils | |
working-directory: utils | |
env: | |
MIRIFLAGS: -Zmiri-disable-stacked-borrows | |
run: cargo miri test | |
timeout-minutes: 10 | |
selftest: | |
runs-on: [self-hosted, linux] | |
needs: build | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: ["x86", "x86_64"] | |
steps: | |
- name: Run utils tests | |
working-directory: utils | |
run: cargo test | |
timeout-minutes: 10 | |
- name: Run kernel tests | |
working-directory: kernel | |
env: | |
CARGOFLAGS: --target arch/${{ matrix.arch }}/${{ matrix.arch }}.json | |
run: ci/test.sh self | |
timeout-minutes: 10 | |
inttest: | |
runs-on: [self-hosted, linux] | |
needs: build | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: | |
- kernel: "x86" | |
user: "i686-unknown-linux-musl" | |
- kernel: "x86_64" | |
user: "x86_64-unknown-linux-musl" | |
steps: | |
- name: Build tests | |
working-directory: inttest | |
env: | |
TARGET: ${{ matrix.arch.user }} | |
run: | | |
./build.sh | |
mv disk ../kernel/qemu_disk | |
- name: Run | |
working-directory: kernel | |
env: | |
CARGOFLAGS: --target arch/${{ matrix.arch.kernel }}/${{ matrix.arch.kernel }}.json | |
run: ci/test.sh int | |
timeout-minutes: 10 |