99 lines
3.5 KiB
YAML
99 lines
3.5 KiB
YAML
name: Essential Test
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
schedule:
|
|
# Schedule to run everyday at 6PM UTC (2AM CST)
|
|
- cron: '* 18 * * *'
|
|
|
|
# It needs about 1 minute to run "make test" once. For a GitHub Action's job, the maximum execution time
|
|
# is 6 hours. Thus, this value should be no greater than 360.
|
|
env:
|
|
repeat_times: 300
|
|
|
|
jobs:
|
|
Make_test_on_ubuntu:
|
|
runs-on: ubuntu-18.04
|
|
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
with:
|
|
submodules: true
|
|
|
|
- name: Get occlum version
|
|
run: echo "OCCLUM_VERSION=$(grep 'Version =' src/pal/include/occlum_version.h | awk '{print $4}')" >> $GITHUB_ENV;
|
|
|
|
- name: Create container with ubuntu image
|
|
run: docker run -itd --name=ubuntu-test -v $GITHUB_WORKSPACE:/root/occlum occlum/occlum:${{ env.OCCLUM_VERSION }}-ubuntu18.04
|
|
|
|
- name: Check format
|
|
run: docker exec ubuntu-test bash -c 'cd /root/occlum; info=$(make format-check);
|
|
if [[ -n $info ]]; then
|
|
echo "Format error detected.";
|
|
echo "$info";
|
|
exit 1;
|
|
fi'
|
|
|
|
- name: Build dependencies
|
|
run: docker exec ubuntu-test bash -c "cd /root/occlum; make submodule"
|
|
|
|
- name: Build source
|
|
run: docker exec ubuntu-test bash -c "source /opt/intel/sgxsdk/environment; cd /root/occlum; OCCLUM_RELEASE_BUILD=y SGX_MODE=SIM make"
|
|
|
|
- name: Integration test
|
|
run: docker exec ubuntu-test bash -c "cd /root/occlum; OCCLUM_LOG_LEVEL=trace SGX_MODE=SIM make test"
|
|
|
|
- name: Integration test with Glibc
|
|
run: docker exec ubuntu-test bash -c "cd /root/occlum; OCCLUM_LOG_LEVEL=trace SGX_MODE=SIM make test-glibc"
|
|
|
|
- name: Stress test with Glibc
|
|
if: ${{ github.event_name == 'schedule' }}
|
|
run: docker exec ubuntu-test bash -c "cd /root/occlum; SGX_MODE=SIM make test-glibc times=${{ env.repeat_times }};"
|
|
|
|
- name: Show failed cases
|
|
if: ${{ failure() }}
|
|
run: docker exec ubuntu-test bash -c "cat /root/occlum/build/test/.fail"
|
|
|
|
Make_test_on_centos:
|
|
runs-on: ubuntu-18.04
|
|
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
with:
|
|
submodules: true
|
|
|
|
- name: Get occlum version
|
|
run: echo "OCCLUM_VERSION=$(grep 'Version =' src/pal/include/occlum_version.h | awk '{print $4}')" >> $GITHUB_ENV;
|
|
|
|
- name: Create container with centos image
|
|
run: docker run -itd --name=centos-test -v $GITHUB_WORKSPACE:/root/occlum occlum/occlum:${{ env.OCCLUM_VERSION }}-centos8.2
|
|
|
|
- name: Check format
|
|
run: docker exec centos-test bash -c 'cd /root/occlum; info=$(make format-check);
|
|
if [[ -n $info ]]; then
|
|
echo "Format error detected.";
|
|
echo "$info";
|
|
exit 1;
|
|
fi'
|
|
|
|
- name: Build dependencies
|
|
run: docker exec centos-test bash -c "cd /root/occlum; make submodule"
|
|
|
|
- name: Build source
|
|
run: docker exec centos-test bash -c "source /opt/intel/sgxsdk/environment; cd /root/occlum; OCCLUM_RELEASE_BUILD=y SGX_MODE=SIM make"
|
|
|
|
- name: Integration test
|
|
run: docker exec centos-test bash -c "cd /root/occlum; OCCLUM_LOG_LEVEL=trace SGX_MODE=SIM make test"
|
|
|
|
- name: Integration test with Glibc
|
|
run: docker exec centos-test bash -c "cd /root/occlum; OCCLUM_LOG_LEVEL=trace SGX_MODE=SIM make test-glibc"
|
|
|
|
- name: Stress test with musl
|
|
if: ${{ github.event_name == 'schedule' }}
|
|
run: docker exec centos-test bash -c "cd /root/occlum; SGX_MODE=SIM make test times=${{ env.repeat_times }}"
|
|
|
|
- name: Show failed cases
|
|
if: ${{ failure() }}
|
|
run: docker exec centos-test bash -c "cat /root/occlum/build/test/.fail"
|