name: Test OSDK on: pull_request: paths: - osdk/** - ostd/** - tools/** - Cargo.toml push: branches: - main # Schedule to run on every day at 21:00 UTC (05:00 Beijing Time) schedule: - cron: '0 21 * * *' jobs: osdk-test: if: github.event_name == 'push' || github.event_name == 'pull_request' runs-on: ubuntu-latest timeout-minutes: 30 strategy: matrix: # asterinas/asterinas:0.11.0 container is the developing container of asterinas, # asterinas/osdk:0.11.0 container is built with the intructions from Asterinas Book container: ['asterinas/asterinas:0.11.0', 'asterinas/osdk:0.11.0'] fail-fast: false container: ${{ matrix.container }} steps: - run: echo "Running in ${{ matrix.container }}" - uses: actions/checkout@v4 - name: Lint id: lint if: matrix.container == 'asterinas/asterinas:0.11.0' run: make check_osdk # Github's actions/checkout@v4 will result in a new user (not root) # and thus not using the Rust environment we set up in the container. # So the RUSTUP_HOME needs to be set here. - name: Unit test id: unit_test run: RUSTUP_HOME=/root/.rustup make test_osdk osdk-test-tdx: if: github.event_name == 'schedule' runs-on: self-hosted timeout-minutes: 30 env: # Need to set up proxy since the self-hosted CI server is located in China, # which has poor network connection to the official Rust crate repositories. RUSTUP_DIST_SERVER: https://mirrors.ustc.edu.cn/rust-static RUSTUP_UPDATE_ROOT: https://mirrors.ustc.edu.cn/rust-static/rustup strategy: matrix: # asterinas/asterinas:0.11.0-tdx container is the developing container of asterinas, # asterinas/osdk:0.11.0-tdx container is built with the intructions from Asterinas Book container: ['asterinas/asterinas:0.11.0-tdx', 'asterinas/osdk:0.11.0-tdx'] fail-fast: false container: image: ${{ matrix.container }} options: --device=/dev/kvm --privileged steps: - run: echo "Running in ${{ matrix.container }}" - uses: actions/checkout@v4 - name: Lint id: lint if: matrix.container == 'asterinas/asterinas:0.11.0-tdx' run: make check_osdk # Github's actions/checkout@v4 will result in a new user (not root) # and thus not using the Rust environment we set up in the container. # So the RUSTUP_HOME needs to be set here. - name: Unit test id: unit_test run: RUSTUP_HOME=/root/.rustup INTEL_TDX=1 make test_osdk