xref: /DragonOS/.github/workflows/makefile.yml (revision 7b0ef10895108a0de5ff5ef3d2f93f40cf2e33a5)
12057c77fSloginname: Build Check
22057c77fSlogin
32057c77fSloginon:
42057c77fSlogin  push:
5fe7d4d58SChiichen    branches: [ "master", "feat-*", "fix-*"]
62057c77fSlogin  pull_request:
7fe7d4d58SChiichen    branches: [ "master", "feat-*", "fix-*"]
82057c77fSlogin
92057c77fSloginjobs:
109a367aa7SLoGin
1143ef2a0dSLoGin  format-check:
1243ef2a0dSLoGin    name: Format check ${{ matrix.arch }}
1343ef2a0dSLoGin    runs-on: ubuntu-latest
1443ef2a0dSLoGin    continue-on-error: true
15*7b0ef108SLoGin    container: dragonos/dragonos-dev:v1.5
1643ef2a0dSLoGin
1743ef2a0dSLoGin    strategy:
1843ef2a0dSLoGin      matrix:
1943ef2a0dSLoGin        arch: [x86_64, riscv64]
2043ef2a0dSLoGin
2143ef2a0dSLoGin    steps:
22*7b0ef108SLoGin    - run: echo "Running in dragonos/dragonos-dev:v1.5"
2343ef2a0dSLoGin    - uses: actions/checkout@v3
2443ef2a0dSLoGin
2543ef2a0dSLoGin    - name: Format check
2643ef2a0dSLoGin      env:
2743ef2a0dSLoGin          ARCH: ${{ matrix.arch }}
28415e46eaSLoGin          HOME: /root
29415e46eaSLoGin      shell: bash -ileo pipefail {0}
3043ef2a0dSLoGin      run: |
3143ef2a0dSLoGin            printf "\n" >> kernel/src/include/bindings/bindings.rs
3243ef2a0dSLoGin            FMT_CHECK=1 make fmt
3343ef2a0dSLoGin
3443ef2a0dSLoGin  kernel-static-test:
3543ef2a0dSLoGin    name: Kernel static test ${{ matrix.arch }}
3643ef2a0dSLoGin    runs-on: ubuntu-latest
3743ef2a0dSLoGin    continue-on-error: true
38*7b0ef108SLoGin    container: dragonos/dragonos-dev:v1.5
3943ef2a0dSLoGin
4043ef2a0dSLoGin    strategy:
4143ef2a0dSLoGin      matrix:
4243ef2a0dSLoGin        arch: [x86_64, riscv64]
4343ef2a0dSLoGin
4443ef2a0dSLoGin    steps:
45*7b0ef108SLoGin    - run: echo "Running in dragonos/dragonos-dev:v1.5"
4643ef2a0dSLoGin
47415e46eaSLoGin    - uses: actions/checkout@v3
4843ef2a0dSLoGin
4943ef2a0dSLoGin    - name: Run kernel static test
508d72b68dSJomo      shell: bash -ileo pipefail {0}
5143ef2a0dSLoGin      env:
5243ef2a0dSLoGin          ARCH: ${{ matrix.arch }}
53415e46eaSLoGin          HOME: /root
54fae6e9adSlinfeng      run: bash -c "source /root/.cargo/env && cd kernel && make test && make test-rbpf"
5543ef2a0dSLoGin
5643ef2a0dSLoGin  build-x86_64:
572057c77fSlogin
586d9dff5fSlogin    runs-on: ubuntu-latest
59*7b0ef108SLoGin    container: dragonos/dragonos-dev:v1.5
602057c77fSlogin
612057c77fSlogin    steps:
62*7b0ef108SLoGin    - run: echo "Running in dragonos/dragonos-dev:v1.5"
63415e46eaSLoGin
642057c77fSlogin    - uses: actions/checkout@v3
652057c77fSlogin    - name: build the DragonOS
6643ef2a0dSLoGin      env:
6743ef2a0dSLoGin          ARCH: x86_64
68415e46eaSLoGin          HOME: /root
698d72b68dSJomo      shell: bash -ileo pipefail {0}
708d72b68dSJomo
718d72b68dSJomo      run: |
728d72b68dSJomo        source ~/.bashrc
738d72b68dSJomo        source ~/.cargo/env
748d72b68dSJomo        export DragonOS_GCC=$HOME/opt/dragonos-gcc/gcc-x86_64-unknown-none/bin
758d72b68dSJomo
768d72b68dSJomo        make -j $(nproc)
7791e9d4abSLoGin
7843ef2a0dSLoGin  build-riscv64:
7943ef2a0dSLoGin
8043ef2a0dSLoGin    runs-on: ubuntu-latest
81*7b0ef108SLoGin    container: dragonos/dragonos-dev:v1.5
8243ef2a0dSLoGin
8343ef2a0dSLoGin    steps:
84*7b0ef108SLoGin    - run: echo "Running in dragonos/dragonos-dev:v1.5"
85415e46eaSLoGin
8643ef2a0dSLoGin    - uses: actions/checkout@v3
8743ef2a0dSLoGin      with:
8843ef2a0dSLoGin        submodules: 'recursive'
8943ef2a0dSLoGin
9043ef2a0dSLoGin    - name: build the DragonOS
918d72b68dSJomo      shell: bash -ileo pipefail {0}
9243ef2a0dSLoGin      env:
9343ef2a0dSLoGin          ARCH: riscv64
94415e46eaSLoGin          HOME: /root
9543ef2a0dSLoGin
968d72b68dSJomo      run: source ~/.bashrc && source ~/.cargo/env && make kernel -j $(nproc)
9743ef2a0dSLoGin
98