feat: framebuffer #1840
Workflow file for this run
This file contains hidden or 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: | |
| 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 |