Merge pull request #7254 from zmstone/merge-proper-coverdata

Merge proper coverdata
This commit is contained in:
Zaiming (Stone) Shi 2022-03-10 09:43:18 +01:00 committed by GitHub
commit 9106b230a9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 75 additions and 19 deletions

View File

@ -1,5 +1,9 @@
name: Check emqx app standalone name: Check emqx app standalone
## apps/emqx can be used as a rebar/mix dependency
## in other project, so we need to make sure apps/emqx
## as an Erlang/Elixir app works standalone
on: on:
push: push:
branches: branches:

View File

@ -14,7 +14,7 @@ on:
pull_request: pull_request:
jobs: jobs:
run_proper_test: eunit_and_proper:
strategy: strategy:
matrix: matrix:
otp: otp:
@ -48,9 +48,19 @@ jobs:
path: source/_build/default/lib/quicer/ path: source/_build/default/lib/quicer/
key: ${{ matrix.os }}-${{ matrix.otp }}-${{ matrix.arch }}-${{ steps.deps-refs.outputs.DEP_QUICER_REF }} 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 - name: proper
run: make proper run: make proper
- uses: actions/upload-artifact@v2
with:
name: coverdata
path: _build/test/cover
run_common_test: run_common_test:
strategy: strategy:
matrix: matrix:
@ -68,7 +78,6 @@ jobs:
MYSQL_TAG: 8 MYSQL_TAG: 8
PGSQL_TAG: 13 PGSQL_TAG: 13
REDIS_TAG: 6 REDIS_TAG: 6
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: | run: |
docker-compose \ docker-compose \
-f .ci/docker-compose-file/docker-compose-mongo-single-tcp.yaml \ -f .ci/docker-compose-file/docker-compose-mongo-single-tcp.yaml \
@ -81,32 +90,75 @@ jobs:
-f .ci/docker-compose-file/docker-compose-redis-single-tls.yaml \ -f .ci/docker-compose-file/docker-compose-redis-single-tls.yaml \
-f .ci/docker-compose-file/docker-compose.yaml \ -f .ci/docker-compose-file/docker-compose.yaml \
up -d --build up -d --build
- name: run eunit # produces ct.coverdata
run: |
docker exec -i ${{ matrix.otp_release }} bash -c "make eunit"
- name: run common test - name: run common test
run: | run: |
docker exec -i ${{ matrix.otp_release }} bash -c "make ct" docker exec -i ${{ matrix.otp_release }} bash -c "make ct"
- name: run cover - uses: actions/upload-artifact@v1
run: | if: matrix.otp_release == 'erlang24'
printenv > .env with:
docker exec -i ${{ matrix.otp_release }} bash -c "DIAGNOSTIC=1 make cover" name: coverdata
docker exec --env-file .env -i ${{ matrix.otp_release }} bash -c "DIAGNOSTIC=1 make coveralls" path: _build/test/cover
- name: cat rebar.crashdump
if: failure()
run: if [ -f 'rebar3.crashdump' ];then cat 'rebar3.crashdump'; fi
- uses: actions/upload-artifact@v1 - uses: actions/upload-artifact@v1
if: failure() if: failure()
with: with:
name: logs_${{ matrix.otp_release }} name: logs_${{ matrix.otp_release }}
path: _build/test/logs path: _build/test/logs
- uses: actions/upload-artifact@v1
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: with:
name: cover_${{ matrix.otp_release }} 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 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: finish:
needs: run_common_test needs: make_cover
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
steps: steps:
- name: Coveralls Finished - name: Coveralls Finished

View File

@ -81,7 +81,7 @@ APPS=$(shell $(CURDIR)/scripts/find-apps.sh)
.PHONY: $(APPS:%=%-ct) .PHONY: $(APPS:%=%-ct)
define gen-app-ct-target define gen-app-ct-target
$1-ct: conf-segs $1-ct: conf-segs
$(REBAR) ct --name $(CT_NODE_NAME) -v --suite $(shell $(CURDIR)/scripts/find-suites.sh $1) @ENABLE_COVER_COMPILE=1 $(REBAR) ct --name $(CT_NODE_NAME) -c -v --suite $(shell $(CURDIR)/scripts/find-suites.sh $1)
endef endef
$(foreach app,$(APPS),$(eval $(call gen-app-ct-target,$(app)))) $(foreach app,$(APPS),$(eval $(call gen-app-ct-target,$(app))))