name: Run test case concurrency: group: test-${{ github.event_name }}-${{ github.ref }} cancel-in-progress: true on: push: branches: - '**' tags: - v* - e* pull_request: jobs: eunit_and_proper: strategy: matrix: otp: - 24.2.1-1 elixir: - 1.13.3 os: - ubuntu20.04 arch: - amd64 runs-on: ubuntu-20.04 container: "ghcr.io/emqx/emqx-builder/5.0-8:${{ matrix.elixir }}-${{ matrix.otp }}-${{ matrix.os }}" steps: - uses: actions/checkout@v2 - name: Get deps git refs for cache id: deps-refs run: | scripts/get-dep-refs.sh make clean-all - name: load rocksdb cache uses: actions/cache@v2 with: path: source/_build/default/lib/rocksdb/ key: ${{ matrix.os }}-${{ matrix.otp }}-${{ matrix.arch }}-${{ steps.deps-refs.outputs.DEP_ROCKSDB_REF }} - name: load quicer cache uses: actions/cache@v2 with: path: source/_build/default/lib/quicer/ key: ${{ matrix.os }}-${{ matrix.otp }}-${{ matrix.arch }}-${{ steps.deps-refs.outputs.DEP_QUICER_REF }} # produces eunit.coverdata - name: eunit run: make eunit # produces proper.coverdata - name: proper run: make proper - uses: actions/upload-artifact@v2 with: name: coverdata path: _build/test/cover run_common_test: strategy: matrix: otp_release: - "erlang23" - "erlang24" runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: docker compose up env: MONGO_TAG: 5 MYSQL_TAG: 8 PGSQL_TAG: 13 REDIS_TAG: 6 run: | docker-compose \ -f .ci/docker-compose-file/docker-compose-mongo-single-tcp.yaml \ -f .ci/docker-compose-file/docker-compose-mongo-single-tls.yaml \ -f .ci/docker-compose-file/docker-compose-mysql-tcp.yaml \ -f .ci/docker-compose-file/docker-compose-mysql-tls.yaml \ -f .ci/docker-compose-file/docker-compose-pgsql-tcp.yaml \ -f .ci/docker-compose-file/docker-compose-pgsql-tls.yaml \ -f .ci/docker-compose-file/docker-compose-redis-single-tcp.yaml \ -f .ci/docker-compose-file/docker-compose-redis-single-tls.yaml \ -f .ci/docker-compose-file/docker-compose.yaml \ up -d --build # produces ct.coverdata - name: run common test run: | docker exec -i ${{ matrix.otp_release }} bash -c "make ct" - uses: actions/upload-artifact@v1 if: matrix.otp_release == 'erlang24' with: name: coverdata path: _build/test/cover - uses: actions/upload-artifact@v1 if: failure() with: name: logs_${{ matrix.otp_release }} path: _build/test/logs make_cover: needs: - eunit_and_proper - run_common_test strategy: matrix: otp: - 24.2.1-1 elixir: - 1.13.3 os: - ubuntu20.04 arch: - amd64 runs-on: ubuntu-20.04 container: "ghcr.io/emqx/emqx-builder/5.0-8:${{ matrix.elixir }}-${{ matrix.otp }}-${{ matrix.os }}" steps: - uses: actions/checkout@v2 - name: Get deps git refs for cache id: deps-refs run: | scripts/get-dep-refs.sh make clean-all - name: load rocksdb cache uses: actions/cache@v2 with: path: source/_build/default/lib/rocksdb/ key: ${{ matrix.os }}-${{ matrix.otp }}-${{ matrix.arch }}-${{ steps.deps-refs.outputs.DEP_ROCKSDB_REF }} - name: load quicer cache uses: actions/cache@v2 with: path: source/_build/default/lib/quicer/ key: ${{ matrix.os }}-${{ matrix.otp }}-${{ matrix.arch }}-${{ steps.deps-refs.outputs.DEP_QUICER_REF }} - uses: actions/download-artifact@v2 name: download coverdata with: name: coverdata path: _build/test/cover - name: make cover run: make cover - name: send to coveralls env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: make coveralls # do this in a separate job finish: needs: make_cover runs-on: ubuntu-20.04 steps: - name: Coveralls Finished env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | curl -v -k https://coveralls.io/webhook \ --header "Content-Type: application/json" \ --data "{\"repo_name\":\"$GITHUB_REPOSITORY\",\"repo_token\":\"$GITHUB_TOKEN\",\"payload\":{\"build_num\":$GITHUB_RUN_ID,\"status\":\"done\"}}" || true