Skip to content

[CI] Modify CI and add workflow call to implement externel test #1583

[CI] Modify CI and add workflow call to implement externel test

[CI] Modify CI and add workflow call to implement externel test #1583

Workflow file for this run

name: Test CI
on:
push:
pull_request:
workflow_call:
inputs:
CallerPackage:
description: 'The package that triggers the workflow'
required: true
type: string
TopBranch:
description: 'The branch of the main repository'
required: false
default: 'main'
type: string
env:
qemu-version: 8.2.0
rust-toolchain: nightly-2024-05-02
arceos-apps: '68054e8'
prj-repo: "arceos-org/arceos"
jobs:
unit-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
if: inputs.CallerPackage == ''
- uses: actions/checkout@v4
if: inputs.CallerPackage != ''
with:
repository: ${{ env.prj-repo }}
ref: ${{ inputs.TopBranch }}
- name: Patch for the commit to be tested
if: inputs.CallerPackage != ''
run: |
cargo install dependencies-patch
dependencies-patch -c . \
-n ${{ inputs.CallerPackage }} \
-t git --git-repo ${{ github.repository }} \
--commit ${{ github.sha }}
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ env.rust-toolchain }}
components: rust-src
- name: Run unit tests
run: make unittest_no_fail_fast
app-test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
arch: [x86_64, riscv64, aarch64]
steps:
- uses: actions/checkout@v4
if: inputs.CallerPackage == ''
- uses: actions/checkout@v4
if: inputs.CallerPackage != ''
with:
repository: ${{ env.prj-repo }}
ref: ${{ inputs.TopBranch }}
- name: Patch for the commit to be tested
if: inputs.CallerPackage != ''
run: |
cargo install dependencies-patch
dependencies-patch -c . \
-n ${{ inputs.CallerPackage }} \
-t git --git-repo ${{ github.repository }} \
--commit ${{ github.sha }}
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ env.rust-toolchain }}
components: rust-src
- uses: Swatinem/rust-cache@v2
- run: cargo install cargo-binutils
- uses: ./.github/workflows/actions/setup-qemu
with:
qemu-version: ${{ env.qemu-version }}
- uses: ./.github/workflows/actions/setup-musl
with:
arch: ${{ matrix.arch }}
- name: Run app tests
run: |
make disk_img
git clone https://github.com/arceos-org/arceos-apps.git
cd arceos-apps && cp ../Cargo.lock . && git reset --hard ${{ env.arceos-apps }} && cd ..
make -C arceos-apps test AX_ROOT=$(pwd) ARCH=${{ matrix.arch }}