Skip to content

feat: framebuffer #1840

feat: framebuffer

feat: framebuffer #1840

Workflow file for this run

name: Check
on:
push:
branches:
- master
pull_request:
jobs:
clippy:
runs-on: [self-hosted, linux]
steps:
- uses: actions/checkout@v4
- name: Macros
working-directory: macros
run: cargo clippy --all-features --all-targets -- -D warnings
- name: Utils
working-directory: utils
run: cargo clippy --all-features --all-targets -- -D warnings
- name: Kernel
working-directory: kernel
run: |
cp default.build-config.toml build-config.toml
cargo clippy --all-features --all-targets -- -D warnings
- name: Integration tests
working-directory: inttest
run: cargo clippy --all-features --all-targets -- -D warnings
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: Prepare
run: mdbook-mermaid install doc/
- 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:
name: build (${{ matrix.arch }}, ${{ matrix.profile.dir }})
runs-on: [self-hosted, linux]
needs: clippy
strategy:
fail-fast: false
matrix:
arch: ["x86", "x86_64"]
profile:
- name: "dev"
dir: "debug"
- name: "release"
dir: "release"
steps:
- name: Build
working-directory: kernel
run: cargo build --target arch/${{ matrix.arch }}/${{ matrix.arch }}.json --profile ${{ matrix.profile.name }}
- name: Check Multiboot2
working-directory: kernel
run: grub-file --is-x86-multiboot2 target/${{ matrix.arch }}/${{ matrix.profile.dir }}/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
module:
runs-on: [self-hosted, linux]
needs: build
strategy:
fail-fast: false
matrix:
mod: ["e1000", "ps2"]
arch: ["x86", "x86_64"]
profile: ["debug", "release"]
steps:
- name: Clippy
working-directory: mod/${{ matrix.mod }}
env:
ARCH: ${{ matrix.arch }}
CMD: clippy
PROFILE: ${{ matrix.profile }}
run: ../build -- -D warnings
- name: Format
working-directory: mod/${{ matrix.mod }}
run: cargo fmt --check
- name: Build
working-directory: mod/${{ matrix.mod }}
env:
ARCH: ${{ matrix.arch }}
PROFILE: ${{ matrix.profile }}
run: ../build
selftest:
runs-on: [self-hosted, linux]
needs: module
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
build_inttest:
name: build_inttest (${{ matrix.arch.kernel }})
runs-on: [self-hosted, linux]
needs: module
strategy:
fail-fast: false
matrix:
arch:
- kernel: "x86"
user: "i686-unknown-linux-musl"
- kernel: "x86_64"
user: "x86_64-unknown-linux-musl"
user_compat: "i686-unknown-linux-musl"
steps:
- name: Build tests
working-directory: inttest
env:
ARCH: ${{ matrix.arch.kernel }}
TARGET: ${{ matrix.arch.user }}
run: |
./build.sh
mv disk disk-${{ matrix.arch.kernel }}
- name: Build tests (compat)
if: ${{ matrix.arch.user_compat }}
working-directory: inttest
env:
ARCH: ${{ matrix.arch.kernel }}
TARGET: ${{ matrix.arch.user_compat }}
run: |
./build.sh
mv disk disk-${{ matrix.arch.kernel }}-compat
inttest:
name: inttest (${{ matrix.arch.kernel }})
runs-on: [self-hosted, linux]
needs: build_inttest
strategy:
fail-fast: false
matrix:
arch:
- kernel: "x86"
user: "i686-unknown-linux-musl"
- kernel: "x86_64"
user: "x86_64-unknown-linux-musl"
user_compat: "i686-unknown-linux-musl"
cores: ["1", "2"]
steps:
- name: Run
working-directory: kernel
env:
CARGOFLAGS: --target arch/${{ matrix.arch.kernel }}/${{ matrix.arch.kernel }}.json
QEMUFLAGS: "-smp ${{ matrix.cores }}"
run: |
cp ../inttest/disk-${{ matrix.arch.kernel }} qemu_disk
ci/test.sh int
timeout-minutes: 10
- name: Run (compat)
if: ${{ matrix.arch.user_compat }}
working-directory: kernel
env:
CARGOFLAGS: --target arch/${{ matrix.arch.kernel }}/${{ matrix.arch.kernel }}.json
QEMUFLAGS: "-smp ${{ matrix.cores }}"
run: |
cp ../inttest/disk-${{ matrix.arch.kernel }}-compat qemu_disk
ci/test.sh int
timeout-minutes: 10