-
Notifications
You must be signed in to change notification settings - Fork 220
84 lines (81 loc) · 4.08 KB
/
run_deps_tests.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
name: Run deps tests
on:
push:
tags:
- v*
workflow_dispatch:
inputs:
version:
required: true
repository_dispatch:
types: [run_tests]
jobs:
run_deps_tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: get deps
run: |
if [ ${{ github.event_name}} = 'repository_dispatch' ]; then
version=${{ github.event.client_payload.version }}
elif [ ${{ github.event_name}} = 'workflow_dispatch' ]; then
version=${{ github.event.inputs.version }}
else
version=$(echo ${{ github.ref }} | sed -r "s ^refs/heads/|^refs/tags/(.*) \1 g")
fi
docker run -i --rm \
-e EMQX_DEPS_DEFAULT_VSN=$version \
-v $(pwd):/emqx-rel \
-w /emqx-rel \
emqx/build-env:erl22.3-debian10 \
bash -c "make deps-emqx"
- name: Install docker-compose
run: |
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
- name: docker-compose build
run: |
cp _build/emqx/lib/emqx_auth_ldap/emqx.io.ldif .ci/deps_tests/emqx-ldap
cp _build/emqx/lib/emqx_auth_ldap/emqx.schema .ci/deps_tests/emqx-ldap
cp _build/emqx/lib/emqx_auth_ldap/test/certs/* .ci/deps_tests/emqx-ldap
docker-compose -f .ci/deps_tests/docker-compose.yaml build --no-cache
docker network create --driver bridge --ipv6 --subnet fd15:555::/64 emqx_auto_func_test_emqx_bridge
- name: docker-compose up
run: docker-compose -p emqx_auto_func_test -f .ci/deps_tests/docker-compose.yaml up -d
- name: set config files
run: |
cd _build/emqx/lib
sudo chmod -R 777 ./emqx*/etc
for var in $(ls |grep emqx); do
if [ $var == "emqx_auth_mysql" ];then
sed -i "/auth.mysql.server/c auth.mysql.server = mysql_server:3306" ./$var/etc/emqx_auth_mysql.conf
echo "auth.mysql.username = root" >> ./$var/etc/emqx_auth_mysql.conf
echo "auth.mysql.password = public" >> ./$var/etc/emqx_auth_mysql.conf
echo "auth.mysql.ssl.cafile = /emqx-rel/_build/emqx/lib/emqx_auth_mysql/test/emqx_auth_mysql_SUITE_data/ca.pem" >> ./$var/etc/emqx_auth_mysql.conf
echo "auth.mysql.ssl.certfile = /emqx-rel/_build/emqx/lib/emqx_auth_mysql/test/emqx_auth_mysql_SUITE_data/client-cert.pem" >> ./$var/etc/emqx_auth_mysql.conf
echo "auth.mysql.ssl.keyfile = /emqx-rel/_build/emqx/lib/emqx_auth_mysql/test/emqx_auth_mysql_SUITE_data/client-key.pem" >> ./$var/etc/emqx_auth_mysql.conf
fi
if [ $var == "emqx_auth_redis" ];then
sed -i "/auth.redis.server/c auth.redis.server = redis_server:6379" ./$var/etc/emqx_auth_redis.conf
fi
if [ $var == "emqx_auth_mongo" ];then
sed -i "/auth.mongo.server/c auth.mongo.server = mongo_server:27017" ./$var/etc/emqx_auth_mongo.conf
fi
if [ $var == "emqx_auth_pgsql" ];then
sed -i "/auth.pgsql.server/c auth.pgsql.server = pgsql_server:5432" ./$var/etc/emqx_auth_pgsql.conf
fi
if [ $var == "emqx_auth_ldap" ];then
sed -i "/auth.ldap.servers/c auth.ldap.servers = ldap_server" ./$var/etc/emqx_auth_ldap.conf
fi
done
cd -
- name: run all test cases
run: docker exec emqx_auto_func_test_emqx_1 bash -c "make -C /emqx-rel ct -k"
- name: get the results
if: always()
run: docker exec emqx_auto_func_test_python_1 bash -c "pip install --upgrade pip && pip install beautifulsoup4 && cd /emqx-rel/tests && python /emqx-rel/.ci/deps_tests/boot.py"
- uses: actions/upload-artifact@v1
if: always()
with:
name: logs
path: tests/logs