name: Build Check on: push: branches: [ "master" ] pull_request: branches: [ "master" ] jobs: # ensure the toolchain is cached ensure-toolchain: uses: ./.github/workflows/cache-toolchain.yml format-check: name: Format check ${{ matrix.arch }} runs-on: ubuntu-latest needs: [ensure-toolchain] continue-on-error: true strategy: matrix: arch: [x86_64, riscv64] steps: - uses: actions/checkout@v3 - uses: ./.github/actions/import-toolchain - name: Format check env: ARCH: ${{ matrix.arch }} run: | printf "\n" >> kernel/src/include/bindings/bindings.rs FMT_CHECK=1 make fmt kernel-static-test: name: Kernel static test ${{ matrix.arch }} runs-on: ubuntu-latest needs: [ensure-toolchain] continue-on-error: true strategy: matrix: arch: [x86_64, riscv64] steps: - uses: actions/checkout@v3 - uses: ./.github/actions/import-toolchain - name: Run kernel static test shell: bash -ileo pipefail {0} env: ARCH: ${{ matrix.arch }} run: bash -c "source ~/.cargo/env && cd kernel && make test" build-x86_64: runs-on: ubuntu-latest needs: [ensure-toolchain] steps: - uses: actions/checkout@v3 - uses: ./.github/actions/import-toolchain - name: build the DragonOS env: ARCH: x86_64 shell: bash -ileo pipefail {0} run: | source ~/.bashrc source ~/.cargo/env export DragonOS_GCC=$HOME/opt/dragonos-gcc/gcc-x86_64-unknown-none/bin make -j $(nproc) build-riscv64: runs-on: ubuntu-latest needs: [ensure-toolchain] steps: - uses: actions/checkout@v3 with: submodules: 'recursive' - uses: ./.github/actions/import-toolchain - name: build the DragonOS shell: bash -ileo pipefail {0} env: ARCH: riscv64 run: source ~/.bashrc && source ~/.cargo/env && make kernel -j $(nproc)