diff options
| author | Yang Liu <numbksco@gmail.com> | 2024-09-05 17:07:27 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-05 11:07:27 +0200 |
| commit | 4e63b82f5eda8995a2b5cd09d64304ac9e30dbd6 (patch) | |
| tree | 0141a4651e55dd11df71e41b40e45df4106535c2 /.github | |
| parent | 6bc2abae3b71ad1aea750fbfb433310f6e45bbac (diff) | |
| download | box64-4e63b82f5eda8995a2b5cd09d64304ac9e30dbd6.tar.gz box64-4e63b82f5eda8995a2b5cd09d64304ac9e30dbd6.zip | |
[CI] Refactored CI (#1795)
* [CI] Enable Box32 tests on LA64 * upgrade QEMU * [COSIM] Removed thread-safe tests * Use regular cosim in CI * [CI] Simplified "Test Box64" * exclude certain tests when testing with cosim * review * box64.pod too
Diffstat (limited to '.github')
| -rw-r--r-- | .github/workflows/release.yml | 79 |
1 files changed, 44 insertions, 35 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d4af7739..7d363add 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -159,50 +159,59 @@ jobs: - name: "Test Box64" run: | if [[ ${{ matrix.platform }} != 'X64' ]]; then - mkdir qemu9.0.0 - wget -O- -q https://archive.archlinux.org/packages/q/qemu-user-static/qemu-user-static-9.0.0-1-x86_64.pkg.tar.zst | tar -I zstd -C qemu9.0.0 -xf - - sudo cp qemu9.0.0/usr/bin/* /usr/bin/ + mkdir qemu9 + wget -O- -q https://archive.archlinux.org/packages/q/qemu-user-static/qemu-user-static-9.0.2-1-x86_64.pkg.tar.zst | tar -I zstd -C qemu9 -xf - + sudo cp qemu9/usr/bin/* /usr/bin/ fi cd build + export CTEST_OPTIONS="-j$(nproc) --timeout 60 --output-on-failure --repeat until-pass:20" if [[ ${{ matrix.platform }} == 'RISCV' ]]; then - INTERPRETER=qemu-riscv64-static QEMU_LD_PREFIX=/usr/riscv64-linux-gnu/ ctest --timeout 60 -j$(nproc) --output-on-failure - INTERPRETER=qemu-riscv64-static QEMU_LD_PREFIX=/usr/riscv64-linux-gnu/ QEMU_CPU=rv64,v=false BOX64_DYNAREC=0 ctest --timeout 60 -j$(nproc) --repeat until-pass:20 --output-on-failure - INTERPRETER=qemu-riscv64-static QEMU_LD_PREFIX=/usr/riscv64-linux-gnu/ QEMU_CPU=rv64,v=false,zba=true,zbb=true,zbc=true,zbs=true ctest --timeout 60 -j$(nproc) --repeat until-pass:20 --output-on-failure - INTERPRETER=qemu-riscv64-static QEMU_LD_PREFIX=/usr/riscv64-linux-gnu/ QEMU_CPU=rv64,v=true,vlen=128,vext_spec=v1.0 ctest --timeout 60 -j$(nproc) --repeat until-pass:20 --output-on-failure - INTERPRETER=qemu-riscv64-static QEMU_LD_PREFIX=/usr/riscv64-linux-gnu/ QEMU_CPU=rv64,v=true,vlen=256,vext_spec=v1.0 ctest --timeout 60 -j$(nproc) --repeat until-pass:20 --output-on-failure - INTERPRETER=qemu-riscv64-static QEMU_LD_PREFIX=/usr/riscv64-linux-gnu/ QEMU_CPU=thead-c906 ctest --timeout 60 -j$(nproc) --repeat until-pass:20 --output-on-failure - if [[ ${{ env.BOX64_BOX32 }} != 1 ]]; then - INTERPRETER=qemu-riscv64-static QEMU_LD_PREFIX=/usr/riscv64-linux-gnu/ BOX64_DYNAREC_TEST=2 ctest --timeout 60 -j$(nproc) --repeat until-pass:20 --output-on-failure - INTERPRETER=qemu-riscv64-static QEMU_LD_PREFIX=/usr/riscv64-linux-gnu/ BOX64_DYNAREC_TEST=2 QEMU_CPU=rv64,v=false,zba=true,zbb=true,zbc=true,zbs=true ctest --timeout 60 -j$(nproc) --repeat until-pass:20 --output-on-failure - INTERPRETER=qemu-riscv64-static QEMU_LD_PREFIX=/usr/riscv64-linux-gnu/ BOX64_DYNAREC_TEST=2 QEMU_CPU=rv64,v=true,vlen=128,vext_spec=v1.0 ctest --timeout 60 -j$(nproc) --repeat until-pass:20 --output-on-failure - INTERPRETER=qemu-riscv64-static QEMU_LD_PREFIX=/usr/riscv64-linux-gnu/ BOX64_DYNAREC_TEST=2 QEMU_CPU=rv64,v=true,vlen=256,vext_spec=v1.0 ctest --timeout 60 -j$(nproc) --repeat until-pass:20 --output-on-failure - INTERPRETER=qemu-riscv64-static QEMU_LD_PREFIX=/usr/riscv64-linux-gnu/ BOX64_DYNAREC_TEST=2 QEMU_CPU=thead-c906 ctest --timeout 60 -j$(nproc) --repeat until-pass:20 --output-on-failure - fi + export INTERPRETER=qemu-riscv64-static + export QEMU_LD_PREFIX=/usr/riscv64-linux-gnu/ + + ctest $CTEST_OPTIONS + QEMU_CPU=rv64,v=false BOX64_DYNAREC=0 ctest $CTEST_OPTIONS + QEMU_CPU=rv64,v=false,zba=true,zbb=true,zbc=true,zbs=true ctest $CTEST_OPTIONS + QEMU_CPU=rv64,v=true,vlen=128,vext_spec=v1.0 ctest $CTEST_OPTIONS + QEMU_CPU=rv64,v=true,vlen=256,vext_spec=v1.0 ctest $CTEST_OPTIONS + QEMU_CPU=thead-c906 ctest $CTEST_OPTIONS + + BOX64_DYNAREC_TEST=1 ctest $CTEST_OPTIONS -E nocosim + BOX64_DYNAREC_TEST=1 QEMU_CPU=rv64,v=false,zba=true,zbb=true,zbc=true,zbs=true ctest $CTEST_OPTIONS -E nocosim + BOX64_DYNAREC_TEST=1 QEMU_CPU=rv64,v=true,vlen=128,vext_spec=v1.0 ctest $CTEST_OPTIONS -E nocosim + BOX64_DYNAREC_TEST=1 QEMU_CPU=rv64,v=true,vlen=256,vext_spec=v1.0 ctest $CTEST_OPTIONS -E nocosim + BOX64_DYNAREC_TEST=1 QEMU_CPU=thead-c906 ctest $CTEST_OPTIONS -E nocosim elif [[ ${{ matrix.platform }} == 'LARCH64' ]]; then - if [[ ${{ env.BOX64_BOX32 }} != 1 ]]; then - INTERPRETER=qemu-loongarch64-static QEMU_LD_PREFIX=/usr/loongarch64-linux-gnu/ BOX64_DYNAREC_LA64NOEXT=1 ctest --timeout 60 -j$(nproc) --repeat until-pass:20 --output-on-failure - INTERPRETER=qemu-loongarch64-static QEMU_LD_PREFIX=/usr/loongarch64-linux-gnu/ BOX64_DYNAREC_TEST=2 BOX64_DYNAREC_LA64NOEXT=1 ctest --timeout 60 -j$(nproc) --repeat until-pass:20 --output-on-failure - INTERPRETER=qemu-loongarch64-static QEMU_LD_PREFIX=/usr/loongarch64-linux-gnu/ BOX64_DYNAREC=0 ctest --timeout 60 -j$(nproc) --repeat until-pass:20 --output-on-failure - fi + export INTERPRETER=qemu-loongarch64-static + export QEMU_LD_PREFIX=/usr/loongarch64-linux-gnu/ + + BOX64_DYNAREC_LA64NOEXT=1 ctest $CTEST_OPTIONS -E nocosim + BOX64_DYNAREC=0 ctest $CTEST_OPTIONS -E nocosim + + BOX64_DYNAREC_TEST=1 BOX64_DYNAREC_LA64NOEXT=1 ctest $CTEST_OPTIONS -E nocosim elif [[ ${{ matrix.platform }} == 'ANDROID' ]]; then - if [[ ${{ env.BOX64_BOX32 }} != 1 ]]; then - INTERPRETER=qemu-aarch64-static QEMU_LD_PREFIX=/system/lib64 BOX64_DYNAREC=0 ctest --timeout 60 -j$(nproc) --repeat until-pass:20 --output-on-failure - INTERPRETER=qemu-aarch64-static QEMU_LD_PREFIX=/system/lib64 ctest --timeout 60 -j$(nproc) --repeat until-pass:20 --output-on-failure - fi + export INTERPRETER=qemu-aarch64-static + export QEMU_LD_PREFIX=/system/lib64 + + BOX64_DYNAREC=0 ctest $CTEST_OPTIONS + ctest $CTEST_OPTIONS elif [[ ${{ matrix.platform }} == 'TERMUX' ]]; then - if [[ ${{ env.BOX64_BOX32 }} != 1 ]]; then - INTERPRETER=qemu-aarch64-static QEMU_SET_ENV=LD_LIBRARY_PATH=/data/data/com.termux/files/usr/lib QEMU_LD_PREFIX=/system/lib64:/data/data/com.termux/files/usr/lib BOX64_DYNAREC=0 ctest --timeout 60 -j$(nproc) --repeat until-pass:20 --output-on-failure - INTERPRETER=qemu-aarch64-static QEMU_SET_ENV=LD_LIBRARY_PATH=/data/data/com.termux/files/usr/lib QEMU_LD_PREFIX=/system/lib64:/data/data/com.termux/files/usr/lib ctest --timeout 60 -j$(nproc) --repeat until-pass:20 --output-on-failure - fi + export INTERPRETER=qemu-aarch64-static + export QEMU_SET_ENV=LD_LIBRARY_PATH=/data/data/com.termux/files/usr/lib + export QEMU_LD_PREFIX=/system/lib64:/data/data/com.termux/files/usr/lib + + BOX64_DYNAREC=0 ctest $CTEST_OPTIONS + ctest $CTEST_OPTIONS elif [[ ${{ matrix.platform }} != 'X64' ]]; then # AArch64 - INTERPRETER=qemu-aarch64-static QEMU_LD_PREFIX=/usr/aarch64-linux-gnu/ BOX64_DYNAREC=0 ctest --timeout 60 -j$(nproc) --repeat until-pass:20 --output-on-failure - INTERPRETER=qemu-aarch64-static QEMU_LD_PREFIX=/usr/aarch64-linux-gnu/ ctest --timeout 60 -j$(nproc) --repeat until-pass:20 --output-on-failure - if [[ ${{ env.BOX64_BOX32 }} != 1 ]]; then - INTERPRETER=qemu-aarch64-static QEMU_LD_PREFIX=/usr/aarch64-linux-gnu/ BOX64_DYNAREC_TEST=2 ctest --timeout 60 -j$(nproc) --output-on-failure - fi + export INTERPRETER=qemu-aarch64-static + export QEMU_LD_PREFIX=/usr/aarch64-linux-gnu/ + + BOX64_DYNAREC=0 ctest $CTEST_OPTIONS + ctest $CTEST_OPTIONS + BOX64_DYNAREC_TEST=1 ctest $CTEST_OPTIONS -E nocosim else - ctest --timeout 60 -j$(nproc) --output-on-failure + ctest -j$(nproc) fi - name: "Upload Artifact" |