mirror of
https://gitee.com/dgiiot/dgiot.git
synced 2024-12-02 20:28:40 +08:00
155 lines
6.0 KiB
YAML
155 lines
6.0 KiB
YAML
name: Run test case
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- v*
|
|
- e*
|
|
release:
|
|
types:
|
|
- published
|
|
pull_request:
|
|
|
|
jobs:
|
|
run_static_analysis:
|
|
runs-on: ubuntu-20.04
|
|
container: emqx/build-env:erl23.2.7.2-emqx-2-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: xref
|
|
run: make xref
|
|
- name: dialyzer
|
|
run: make dialyzer
|
|
|
|
run_proper_test:
|
|
runs-on: ubuntu-20.04
|
|
container: emqx/build-env:erl23.2.7.2-emqx-2-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
|