asterinas/.github/workflows/test_osdk.yml
2024-12-02 10:30:32 +08:00

77 lines
2.6 KiB
YAML

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.10.0 container is the developing container of asterinas,
# asterinas/osdk:0.10.0 container is built with the intructions from Asterinas Book
container: ['asterinas/asterinas:0.10.0', 'asterinas/osdk:0.10.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.10.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.10.0-tdx container is the developing container of asterinas,
# asterinas/osdk:0.10.0-tdx container is built with the intructions from Asterinas Book
container: ['asterinas/asterinas:0.10.0-tdx', 'asterinas/osdk:0.10.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.10.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