@@ -13,20 +13,29 @@ jobs:
1313 matrix :
1414 rust-toolchain : [nightly, nightly-2025-05-20]
1515 arch : [x86_64, riscv64, aarch64, loongarch64]
16+ include :
17+ - arch : x86_64
18+ target : x86_64-unknown-none
19+ - arch : riscv64
20+ target : riscv64gc-unknown-none-elf
21+ - arch : aarch64
22+ target : aarch64-unknown-none-softfloat
23+ - arch : loongarch64
24+ target : loongarch64-unknown-none-softfloat
1625 steps :
1726 - uses : actions/checkout@v4
1827 - uses : dtolnay/rust-toolchain@stable
1928 with :
2029 toolchain : ${{ matrix.rust-toolchain }}
2130 components : rust-src, clippy, rustfmt
22- targets : x86_64-unknown-none, riscv64gc-unknown-none-elf, aarch64-unknown-none, aarch64-unknown-none-softfloat, loongarch64-unknown-none
23- - name : Setup ArceOS
24- run : ./scripts/get_deps.sh
31+ targets : ${{ matrix.target }}
2532 - name : Check rust version
2633 run : rustc --version --verbose
2734 - uses : arceos-org/setup-musl@v1
2835 with :
2936 arch : ${{ matrix.arch }}
37+ - name : Setup ArceOS
38+ run : ./scripts/get_deps.sh
3039 - name : Check code format
3140 continue-on-error : ${{ matrix.rust-toolchain == 'nightly' }}
3241 run : cargo fmt --all -- --check
@@ -35,86 +44,110 @@ jobs:
3544 run : make clippy ARCH=${{ matrix.arch }}
3645
3746 build :
38- runs-on : ${{ matrix.os }}
47+ runs-on : ubuntu-latest
3948 strategy :
4049 fail-fast : false
4150 matrix :
42- os : [ubuntu-latest]
4351 arch : [x86_64, riscv64, aarch64, loongarch64]
4452 rust-toolchain : [nightly, nightly-2025-05-20]
53+ include :
54+ - arch : x86_64
55+ target : x86_64-unknown-none
56+ - arch : riscv64
57+ target : riscv64gc-unknown-none-elf
58+ - arch : aarch64
59+ target : aarch64-unknown-none-softfloat
60+ - arch : loongarch64
61+ target : loongarch64-unknown-none-softfloat
4562 steps :
4663 - uses : actions/checkout@v4
4764 - uses : dtolnay/rust-toolchain@stable
4865 with :
4966 toolchain : ${{ matrix.rust-toolchain }}
5067 components : rust-src, llvm-tools
51- targets : x86_64-unknown-none, riscv64gc-unknown-none-elf, aarch64-unknown-none, aarch64-unknown-none-softfloat, loongarch64-unknown-none
68+ targets : ${{ matrix.target }}
5269 - uses : Swatinem/rust-cache@v2
5370 with :
5471 shared-key : cargo-bin-cache
5572 cache-targets : false
56- - run : cargo install cargo-binutils
57- - run : ./scripts/get_deps.sh
5873 - uses : arceos-org/setup-musl@v1
5974 with :
6075 arch : ${{ matrix.arch }}
76+ - name : Setup ArceOS
77+ run : ./scripts/get_deps.sh
6178 - name : Build for ${{ matrix.arch }}
6279 continue-on-error : ${{ matrix.rust-toolchain == 'nightly' }}
6380 run : make ARCH=${{ matrix.arch }} build
6481
6582 test-musl :
66- runs-on : ${{ matrix.os }}
83+ runs-on : ubuntu-latest
6784 strategy :
6885 fail-fast : false
6986 matrix :
70- os : [ubuntu-latest]
7187 arch : [x86_64, riscv64, aarch64, loongarch64]
7288 rust-toolchain : [nightly-2025-05-20]
89+ include :
90+ - arch : x86_64
91+ target : x86_64-unknown-none
92+ - arch : riscv64
93+ target : riscv64gc-unknown-none-elf
94+ - arch : aarch64
95+ target : aarch64-unknown-none-softfloat
96+ - arch : loongarch64
97+ target : loongarch64-unknown-none-softfloat
7398 steps :
7499 - uses : actions/checkout@v4
75100 - uses : dtolnay/rust-toolchain@stable
76101 with :
77102 toolchain : ${{ matrix.rust-toolchain }}
78103 components : rust-src, llvm-tools
104+ targets : ${{ matrix.target }}
79105 - uses : Swatinem/rust-cache@v2
80106 with :
81107 shared-key : cargo-bin-cache
82108 cache-targets : false
83- - run : cargo install cargo-binutils
84- - run : ./scripts/get_deps.sh
85109 - uses : arceos-org/setup-musl@v1
86110 with :
87111 arch : ${{ matrix.arch }}
88112 - uses : arceos-org/setup-qemu@v1
89113 with :
90114 version : ${{ env.qemu-version }}
91115 arch_list : x86_64,aarch64,riscv64,loongarch64
116+ - name : Setup ArceOS
117+ run : ./scripts/get_deps.sh
92118 - name : Build rustup target
93119 if : ${{ matrix.arch != 'riscv64' }}
94120 run : rustup target add ${{ matrix.arch }}-unknown-linux-musl
95121 - name : Run tests for musl applications
96122 run : make test ARCH=${{ matrix.arch }}
97123
98124 test-oscomp :
99- runs-on : ${{ matrix.os }}
125+ runs-on : ubuntu-latest
100126 strategy :
101127 fail-fast : false
102128 matrix :
103- os : [ubuntu-latest]
104129 arch : [x86_64, riscv64, aarch64, loongarch64]
105130 rust-toolchain : [nightly-2025-05-20]
131+ include :
132+ - arch : x86_64
133+ target : x86_64-unknown-none
134+ - arch : riscv64
135+ target : riscv64gc-unknown-none-elf
136+ - arch : aarch64
137+ target : aarch64-unknown-none-softfloat
138+ - arch : loongarch64
139+ target : loongarch64-unknown-none-softfloat
106140 steps :
107141 - uses : actions/checkout@v4
108142 - uses : dtolnay/rust-toolchain@stable
109143 with :
110144 toolchain : ${{ matrix.rust-toolchain }}
111145 components : rust-src, llvm-tools
146+ targets : ${{ matrix.target }}
112147 - uses : Swatinem/rust-cache@v2
113148 with :
114149 shared-key : cargo-bin-cache
115150 cache-targets : false
116- - run : cargo install cargo-binutils
117- - run : ./scripts/get_deps.sh
118151 - uses : arceos-org/setup-musl@v1
119152 with :
120153 arch : ${{ matrix.arch }}
@@ -131,6 +164,8 @@ jobs:
131164 gunzip sdcard-${{ matrix.arch }}.img.gz
132165 - name : Build python environment
133166 run : sudo apt-get install -y python3 python3-pip
167+ - name : Setup ArceOS
168+ run : ./scripts/get_deps.sh
134169 - name : Run tests for oscomp musl testcases
135170 run : make oscomp_test ARCH=${{ matrix.arch }} LIBC=musl
136171 - name : Run tests for oscomp glibc testcases
0 commit comments