[ci] Integrate io_uring feature CI

This commit is contained in:
ClawSeven 2024-06-27 17:38:02 +08:00 committed by volcano
parent bb48c63339
commit b38deb14ff
3 changed files with 150 additions and 23 deletions

@ -87,6 +87,12 @@ runs:
- name: Configure Occlum features - name: Configure Occlum features
run: | run: |
if [[ "${{ matrix.self_runner[2] }}" == "EDMM" ]]; then if [[ "${{ matrix.self_runner[2] }}" == "EDMM" ]]; then
docker exec ${{ env.CONTAINER_NAME }} bash -c "jq '.feature.enable_posix_shm = true | .feature.enable_edmm = true' /opt/occlum/etc/template/Occlum.json > /tmp.json && mv /tmp.json /opt/occlum/etc/template/Occlum.json" if [[ "${{ matrix.self_runner[3] }}" == "IO_Uring" ]]; then
docker exec ${{ env.CONTAINER_NAME }} bash -c "jq '.feature.enable_posix_shm = true | .feature.enable_edmm = true | .feature.io_uring = 1' /opt/occlum/etc/template/Occlum.json > /tmp.json && mv /tmp.json /opt/occlum/etc/template/Occlum.json";
else
docker exec ${{ env.CONTAINER_NAME }} bash -c "jq '.feature.enable_posix_shm = true | .feature.enable_edmm = true' /opt/occlum/etc/template/Occlum.json > /tmp.json && mv /tmp.json /opt/occlum/etc/template/Occlum.json";
fi;
elif [[ "${{ matrix.features }}" == "IO_Uring" ]]; then
docker exec ${{ env.CONTAINER_NAME }} bash -c "jq '.feature.io_uring = 1' /opt/occlum/etc/template/Occlum.json > /tmp.json && mv /tmp.json /opt/occlum/etc/template/Occlum.json";
fi; fi;
shell: bash shell: bash

@ -14,6 +14,9 @@ concurrency:
jobs: jobs:
C_cpp_rust_golang_embedded_mode_support_test: C_cpp_rust_golang_embedded_mode_support_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -112,6 +115,9 @@ jobs:
Java_support_test: Java_support_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -146,6 +152,9 @@ jobs:
Fish_test: Fish_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -177,6 +186,9 @@ jobs:
Bazel_test: Bazel_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -213,6 +225,9 @@ jobs:
Https_server_test: Https_server_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -246,6 +261,9 @@ jobs:
Local_attestation_test: Local_attestation_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -275,6 +293,9 @@ jobs:
Sqlite_test: Sqlite_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -303,6 +324,9 @@ jobs:
Xgboost_test: Xgboost_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -334,6 +358,9 @@ jobs:
Tensorflow_lite_test: Tensorflow_lite_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -365,6 +392,9 @@ jobs:
Pytorch_test: Pytorch_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -393,6 +423,9 @@ jobs:
Distributed_Pytorch_test: Distributed_Pytorch_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -431,6 +464,9 @@ jobs:
Tensorflow_test: Tensorflow_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -460,6 +496,9 @@ jobs:
# Below tests needs test image to run faster # Below tests needs test image to run faster
Grpc_musl_test: Grpc_musl_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -504,6 +543,9 @@ jobs:
Grpc_glibc_test: Grpc_glibc_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -552,6 +594,9 @@ jobs:
Grpc_tls_test: Grpc_tls_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -593,6 +638,9 @@ jobs:
Openvino_test: Openvino_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -630,6 +678,9 @@ jobs:
# Python test also needs its own image because in Alpine environment, modules are built locally and consumes a lot of time. # Python test also needs its own image because in Alpine environment, modules are built locally and consumes a lot of time.
Python_musl_support_test: Python_musl_support_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -670,6 +721,9 @@ jobs:
# Python glibc support test # Python glibc support test
Python_glibc_support_test: Python_glibc_support_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -706,6 +760,9 @@ jobs:
# Redis test # Redis test
Redis_support_test: Redis_support_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -745,6 +802,9 @@ jobs:
Flink_test: Flink_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -797,6 +857,9 @@ jobs:
Cluster_serving_test: Cluster_serving_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -825,6 +888,9 @@ jobs:
Enclave_RA_TLS_test: Enclave_RA_TLS_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -859,6 +925,9 @@ jobs:
Vault_test: Vault_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -896,6 +965,9 @@ jobs:
Sofaboot_test: Sofaboot_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -936,6 +1008,9 @@ jobs:
Netty_UT_test: Netty_UT_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -967,6 +1042,9 @@ jobs:
Bash_test: Bash_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -995,6 +1073,9 @@ jobs:
Sysbench_test: Sysbench_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -1027,6 +1108,9 @@ jobs:
Gvisor_syscalls_test: Gvisor_syscalls_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -1062,10 +1146,19 @@ jobs:
run: docker exec $gvisor_test bash -c "git clone https://github.com/occlum/gvisor.git" run: docker exec $gvisor_test bash -c "git clone https://github.com/occlum/gvisor.git"
- name: Run gvisor syscall test - name: Run gvisor syscall test
run: docker exec $gvisor_test bash -c "cd /root/gvisor/occlum && SGX_MODE=SIM ./run_occlum_passed_tests.sh" run: |
if [[ "${{ matrix.features }}" == "IO_Uring" ]]; then
docker exec $gvisor_test bash -c "cd /root/gvisor/occlum && SGX_MODE=SIM ./run_occlum_passed_tests.sh uring";
else
docker exec $gvisor_test bash -c "cd /root/gvisor/occlum && SGX_MODE=SIM ./run_occlum_passed_tests.sh";
fi;
shell: bash
Flask_tls_test: Flask_tls_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -1108,6 +1201,9 @@ jobs:
Iperf2_test: Iperf2_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -1143,6 +1239,9 @@ jobs:
Linux_LTP_test: Linux_LTP_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -1175,6 +1274,9 @@ jobs:
FIO_test: FIO_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -1203,6 +1305,9 @@ jobs:
PaddlePaddle_test: PaddlePaddle_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -1231,6 +1336,9 @@ jobs:
RuntimeBoot_test: RuntimeBoot_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -1259,6 +1367,9 @@ jobs:
Swtpm_test: Swtpm_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- name: Remove unnecessary files - name: Remove unnecessary files
run: | run: |
@ -1293,6 +1404,9 @@ jobs:
Filebench_test: Filebench_test:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
features: [Legacy, IO_Uring]
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v1
with: with:

@ -25,7 +25,7 @@ jobs:
runs-on: ${{ matrix.self_runner }} runs-on: ${{ matrix.self_runner }}
strategy: strategy:
matrix: matrix:
self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM]] self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM, IO_Uring]]
steps: steps:
- name: Clean before running - name: Clean before running
@ -80,7 +80,7 @@ jobs:
runs-on: ${{ matrix.self_runner }} runs-on: ${{ matrix.self_runner }}
strategy: strategy:
matrix: matrix:
self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM]] self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM, IO_Uring]]
steps: steps:
- name: Clean before running - name: Clean before running
@ -179,7 +179,7 @@ jobs:
runs-on: ${{ matrix.self_runner }} runs-on: ${{ matrix.self_runner }}
strategy: strategy:
matrix: matrix:
self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM, PKU]] self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM, IO_Uring, PKU]]
steps: steps:
- name: Clean before running - name: Clean before running
@ -220,7 +220,7 @@ jobs:
- name: Run hello PKU - name: Run hello PKU
run: | run: |
if [[ "${{ matrix.self_runner[3] }}" == "PKU" ]]; then if [[ "${{ matrix.self_runner[4] }}" == "PKU" ]]; then
docker exec ${{ env.CONTAINER_NAME }} bash -c "cd /root/occlum/demos/java && ./run_java_on_occlum.sh hello_pku" docker exec ${{ env.CONTAINER_NAME }} bash -c "cd /root/occlum/demos/java && ./run_java_on_occlum.sh hello_pku"
else else
echo "Skip PKU test" echo "Skip PKU test"
@ -237,7 +237,7 @@ jobs:
runs-on: ${{ matrix.self_runner }} runs-on: ${{ matrix.self_runner }}
strategy: strategy:
matrix: matrix:
self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM]] self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM, IO_Uring]]
steps: steps:
- name: Clean before running - name: Clean before running
@ -289,7 +289,7 @@ jobs:
runs-on: ${{ matrix.self_runner }} runs-on: ${{ matrix.self_runner }}
strategy: strategy:
matrix: matrix:
self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM]] self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM, IO_Uring]]
steps: steps:
- name: Clean before running - name: Clean before running
@ -336,7 +336,7 @@ jobs:
runs-on: ${{ matrix.self_runner }} runs-on: ${{ matrix.self_runner }}
strategy: strategy:
matrix: matrix:
self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM]] self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM, IO_Uring]]
steps: steps:
- name: Clean before running - name: Clean before running
@ -383,7 +383,7 @@ jobs:
runs-on: ${{ matrix.self_runner }} runs-on: ${{ matrix.self_runner }}
strategy: strategy:
matrix: matrix:
self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM]] self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM, IO_Uring]]
steps: steps:
- name: Clean before running - name: Clean before running
@ -427,7 +427,7 @@ jobs:
runs-on: ${{ matrix.self_runner }} runs-on: ${{ matrix.self_runner }}
strategy: strategy:
matrix: matrix:
self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM]] self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM, IO_Uring]]
steps: steps:
- name: Clean before running - name: Clean before running
@ -505,7 +505,7 @@ jobs:
runs-on: ${{ matrix.self_runner }} runs-on: ${{ matrix.self_runner }}
strategy: strategy:
matrix: matrix:
self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM]] self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM, IO_Uring]]
steps: steps:
- name: Clean before running - name: Clean before running
@ -580,7 +580,7 @@ jobs:
runs-on: ${{ matrix.self_runner }} runs-on: ${{ matrix.self_runner }}
strategy: strategy:
matrix: matrix:
self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM]] self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM, IO_Uring]]
steps: steps:
- name: Clean before running - name: Clean before running
@ -677,7 +677,7 @@ jobs:
runs-on: ${{ matrix.self_runner }} runs-on: ${{ matrix.self_runner }}
strategy: strategy:
matrix: matrix:
self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM]] self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM, IO_Uring]]
steps: steps:
- name: Clean before running - name: Clean before running
@ -741,8 +741,15 @@ jobs:
- name: Clone gvisor code - name: Clone gvisor code
run: docker exec $gvisor_test bash -c "git clone https://github.com/occlum/gvisor.git" run: docker exec $gvisor_test bash -c "git clone https://github.com/occlum/gvisor.git"
- name: Run gvisor syscall test - name: Run gvisor syscall test
run: docker exec $gvisor_test bash -c "cd /root/gvisor/occlum; ./run_occlum_passed_tests.sh" run: |
if [[ "${{ matrix.self_runner[3] }}" == "IO_Uring" ]]; then
docker exec $gvisor_test bash -c "cd /root/gvisor/occlum; ./run_occlum_passed_tests.sh uring";
else
docker exec $gvisor_test bash -c "cd /root/gvisor/occlum; ./run_occlum_passed_tests.sh";
fi;
shell: bash
- name: Clean the environment - name: Clean the environment
if: ${{ always() }} if: ${{ always() }}
@ -920,7 +927,7 @@ jobs:
runs-on: ${{ matrix.self_runner }} runs-on: ${{ matrix.self_runner }}
strategy: strategy:
matrix: matrix:
self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM]] self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM, IO_Uring]]
steps: steps:
- name: Clean before running - name: Clean before running
@ -960,7 +967,7 @@ jobs:
runs-on: ${{ matrix.self_runner }} runs-on: ${{ matrix.self_runner }}
strategy: strategy:
matrix: matrix:
self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM]] self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM, IO_Uring]]
steps: steps:
- name: Clean before running - name: Clean before running
@ -1014,7 +1021,7 @@ jobs:
runs-on: ${{ matrix.self_runner }} runs-on: ${{ matrix.self_runner }}
strategy: strategy:
matrix: matrix:
self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM]] self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM, IO_Uring]]
steps: steps:
- name: Clean before running - name: Clean before running
@ -1069,7 +1076,7 @@ jobs:
runs-on: ${{ matrix.self_runner }} runs-on: ${{ matrix.self_runner }}
strategy: strategy:
matrix: matrix:
self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM]] self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM, IO_Uring]]
steps: steps:
- name: Clean before running - name: Clean before running
@ -1117,7 +1124,7 @@ jobs:
runs-on: ${{ matrix.self_runner }} runs-on: ${{ matrix.self_runner }}
strategy: strategy:
matrix: matrix:
self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM]] self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM, IO_Uring]]
steps: steps:
- name: Clean before running - name: Clean before running
@ -1163,7 +1170,7 @@ jobs:
runs-on: ${{ matrix.self_runner }} runs-on: ${{ matrix.self_runner }}
strategy: strategy:
matrix: matrix:
self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM]] self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM, IO_Uring]]
steps: steps:
- name: Clean before running - name: Clean before running
@ -1198,7 +1205,7 @@ jobs:
runs-on: ${{ matrix.self_runner }} runs-on: ${{ matrix.self_runner }}
strategy: strategy:
matrix: matrix:
self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM]] self_runner: [[self-hosted, SGX2-HW], [self-hosted, SGX2-HW, EDMM, IO_Uring]]
steps: steps:
- name: Clean before running - name: Clean before running