diff --git a/.github/workflows/rc.yml b/.github/workflows/rc.yml index 2891dd7a0ce..f4d4ee37132 100644 --- a/.github/workflows/rc.yml +++ b/.github/workflows/rc.yml @@ -108,3 +108,80 @@ jobs: push: true build-args: | BRANCH=${{ steps.tagname.outputs.tag }} + + test: + name: test + runs-on: [self-hosted, nebula] + strategy: + fail-fast: false + matrix: + os: + - ubuntu1804 + - ubuntu2004 + - centos7 + - centos8 + compiler: + - gcc-9.3 + container: + image: vesoft/nebula-dev:${{ matrix.os }} + env: + CCACHE_DIR: /tmp/ccache/nebula/${{ matrix.os }}-${{ matrix.compiler }} + CCACHE_MAXSIZE: 8G + volumes: + - /tmp/ccache/nebula/${{ matrix.os }}-${{ matrix.compiler }}:/tmp/ccache/nebula/${{ matrix.os }}-${{ matrix.compiler }} + options: --cap-add=SYS_PTRACE + steps: + - uses: webiny/action-post-run@2.0.1 + with: + run: sh -c "find . -mindepth 1 -delete" + - uses: actions/checkout@v2 + - name: Prepare environment + id: prepare + run: | + [ -d build/ ] && rm -rf build/* || mkdir -p build + make init -C tests + - name: CMake + id: cmake + run: | + cmake \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DENABLE_TESTING=on \ + -B build + echo "::set-output name=j::8" + - name: Make + run: | + ccache -z + cmake --build build/ -j $(nproc) + ccache -s + - name: CTest + env: + ASAN_OPTIONS: fast_unwind_on_malloc=1 + run: ctest -j $(($(nproc)/2+1)) --timeout 400 --output-on-failure + working-directory: build/ + timeout-minutes: 20 + - name: Setup cluster + run: | + make CONTAINERIZED=true ENABLE_SSL=true CA_SIGNED=true up + working-directory: tests/ + timeout-minutes: 2 + - name: Pytest + run: | + make RM_DIR=false DEBUG=false J=${{ steps.cmake.outputs.j }} test + working-directory: tests/ + timeout-minutes: 15 + - name: TCK + run: | + make RM_DIR=false DEBUG=false J=${{ steps.cmake.outputs.j }} tck + working-directory: tests/ + timeout-minutes: 60 + - name: Down cluster + run: | + make RM_DIR=false down + working-directory: tests/ + timeout-minutes: 2 + - name: Upload logs + uses: actions/upload-artifact@v2 + if: ${{ failure() }} + with: + name: ${{ matrix.os }}-${{ matrix.compiler }}-nebula-test-logs + path: ./build/server_*/logs/