| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- name: Run test case
- on:
- push:
- tags:
- - v*
- - e*
- pull_request:
- jobs:
- run_proper_test:
- runs-on: ubuntu-20.04
- container: emqx/build-env:erl23.2.7.2-emqx-3-ubuntu20.04
- steps:
- - uses: actions/checkout@v2
- - name: set git credentials
- run: |
- if make emqx-ee --dry-run > /dev/null 2>&1; then
- echo "https://ci%40emqx.io:${{ secrets.CI_GIT_TOKEN }}@github.com" > $HOME/.git-credentials
- git config --global credential.helper store
- fi
- - name: proper
- run: make proper
- run_common_test:
- runs-on: ubuntu-20.04
- steps:
- - uses: actions/checkout@v2
- - name: set edition
- id: set_edition
- run: |
- if make emqx-ee --dry-run > /dev/null 2>&1; then
- echo "EDITION=enterprise" >> $GITHUB_ENV
- else
- echo "EDITION=opensource" >> $GITHUB_ENV
- fi
- - name: docker compose up
- if: env.EDITION == 'opensource'
- env:
- MYSQL_TAG: 8
- REDIS_TAG: 6
- MONGO_TAG: 4
- PGSQL_TAG: 13
- LDAP_TAG: 2.4.50
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: |
- docker-compose \
- -f .ci/docker-compose-file/docker-compose.yaml \
- -f .ci/docker-compose-file/docker-compose-ldap-tcp.yaml \
- -f .ci/docker-compose-file/docker-compose-mongo-tcp.yaml \
- -f .ci/docker-compose-file/docker-compose-mysql-tcp.yaml \
- -f .ci/docker-compose-file/docker-compose-pgsql-tcp.yaml \
- -f .ci/docker-compose-file/docker-compose-redis-single-tcp.yaml \
- up -d --build
- - name: docker compose up
- if: env.EDITION == 'enterprise'
- env:
- MYSQL_TAG: 8
- REDIS_TAG: 6
- MONGO_TAG: 4
- PGSQL_TAG: 13
- LDAP_TAG: 2.4.50
- OPENTSDB_TAG: latest
- INFLUXDB_TAG: 1.7.6
- DYNAMODB_TAG: 1.11.477
- TIMESCALE_TAG: latest-pg11
- CASSANDRA_TAG: 3.11.6
- RABBITMQ_TAG: 3.7
- KAFKA_TAG: 2.5.0
- PULSAR_TAG: 2.3.2
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- timeout-minutes: 20
- run: |
- docker-compose \
- -f .ci/docker-compose-file/docker-compose.yaml \
- -f .ci/docker-compose-file/docker-compose-ldap-tcp.yaml \
- -f .ci/docker-compose-file/docker-compose-mongo-tcp.yaml \
- -f .ci/docker-compose-file/docker-compose-mysql-tcp.yaml \
- -f .ci/docker-compose-file/docker-compose-pgsql-tcp.yaml \
- -f .ci/docker-compose-file/docker-compose-redis-single-tcp.yaml \
- -f .ci/docker-compose-file/docker-compose-enterprise.yaml \
- -f .ci/docker-compose-file/docker-compose-enterprise-cassandra-tcp.yaml \
- -f .ci/docker-compose-file/docker-compose-enterprise-dynamodb-tcp.yaml \
- -f .ci/docker-compose-file/docker-compose-enterprise-influxdb-tcp.yaml \
- -f .ci/docker-compose-file/docker-compose-enterprise-kafka-tcp.yaml \
- -f .ci/docker-compose-file/docker-compose-enterprise-opentsdb-tcp.yaml \
- -f .ci/docker-compose-file/docker-compose-enterprise-pulsar-tcp.yaml \
- -f .ci/docker-compose-file/docker-compose-enterprise-rabbit-tcp.yaml \
- -f .ci/docker-compose-file/docker-compose-enterprise-timescale-tcp.yaml \
- -f .ci/docker-compose-file/docker-compose-enterprise-mysql-client.yaml \
- -f .ci/docker-compose-file/docker-compose-enterprise-pgsql-and-timescale-client.yaml \
- up -d --build
- docker exec -i erlang bash -c "echo \"https://ci%40emqx.io:${{ secrets.CI_GIT_TOKEN }}@github.com\" > /root/.git-credentials && git config --global credential.helper store"
- while [ $(docker ps -a --filter name=client --filter exited=0 | wc -l) \
- != $(docker ps -a --filter name=client | wc -l) ]; do
- sleep 5
- done
- - name: run eunit
- run: |
- docker exec -i erlang bash -c "make eunit"
- - name: run common test
- run: |
- docker exec -i erlang bash -c "make ct"
- - name: run cover
- run: |
- printenv > .env
- docker exec -i erlang bash -c "make cover"
- docker exec --env-file .env -i erlang bash -c "make coveralls"
- - name: cat rebar.crashdump
- if: failure()
- run: if [ -f 'rebar3.crashdump' ];then cat 'rebar3.crashdump'; fi
- - uses: actions/upload-artifact@v1
- if: failure()
- with:
- name: logs
- path: _build/test/logs
- - uses: actions/upload-artifact@v1
- with:
- name: cover
- path: _build/test/cover
- finish:
- needs: run_common_test
- 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
|