Skip to content

Commit 8b7fc49

Browse files
committed
refactor: run relup test nodes in individual docker containers
When running EMQX in lux shell inside a docker container the node won't boot due to load_failed for redbug modules reason is still unknown
1 parent b85abde commit 8b7fc49

File tree

10 files changed

+400
-311
lines changed

10 files changed

+400
-311
lines changed

.ci/fvt_tests/http_server/src/http_server.erl

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232

3333
start() ->
3434
application:ensure_all_started(minirest),
35-
ets:new(relup_test_message, [named_table, public]),
35+
_ = spawn(fun ets_owner/0),
3636
Handlers = [{"/", minirest:handler(#{modules => [?MODULE]})}],
3737
Dispatch = [{"/[...]", minirest, Handlers}],
3838
minirest:start_http(?MODULE, #{socket_opts => [inet, {port, 7077}]}, Dispatch).
@@ -42,14 +42,22 @@ stop() ->
4242
minirest:stop_http(?MODULE).
4343

4444
get_counter(_Binding, _Params) ->
45-
return({ok, ets:info(relup_test_message, size)}).
45+
V = ets:info(relup_test_message, size),
46+
return({ok, V}).
4647

4748
add_counter(_Binding, Params) ->
4849
case lists:keymember(<<"payload">>, 1, Params) of
4950
true ->
5051
{value, {<<"id">>, ID}, Params1} = lists:keytake(<<"id">>, 1, Params),
5152
ets:insert(relup_test_message, {ID, Params1});
5253
_ ->
54+
io:format("discarded: ~p\n", [Params]),
5355
ok
5456
end,
5557
return().
58+
59+
ets_owner() ->
60+
ets:new(relup_test_message, [named_table, public]),
61+
receive
62+
stop -> ok
63+
end.

.ci/fvt_tests/relup.lux

Lines changed: 0 additions & 215 deletions
This file was deleted.

.github/workflows/run_relup_tests.yaml

Lines changed: 27 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,12 @@ jobs:
5454
with:
5555
name: emqx_built
5656
path: |
57-
emqx/_packages/*/*.tar.gz
58-
emqx/.ci/fvt_tests
57+
emqx/*
5958
6059
relup_test_run:
6160
needs:
6261
- relup_test_plan
6362
runs-on: ubuntu-20.04
64-
container: "ghcr.io/emqx/emqx-builder/5.0-17:1.13.4-24.2.1-1-ubuntu20.04"
6563
strategy:
6664
fail-fast: false
6765
matrix:
@@ -74,64 +72,41 @@ jobs:
7472
run:
7573
shell: bash
7674
steps:
75+
# setup Erlang to run lux
76+
- uses: erlef/setup-beam@v1
77+
with:
78+
otp-version: "24.2"
79+
- uses: actions/checkout@v2
80+
with:
81+
repository: hawk/lux
82+
ref: lux-2.8.1
83+
path: lux
84+
- name: Install lux
85+
run: |
86+
set -e -u -x
87+
cd lux
88+
autoconf
89+
./configure
90+
make
91+
echo "$(pwd)/bin" >> $GITHUB_PATH
7792
- uses: actions/download-artifact@v2
7893
name: Download built emqx and test scenario
7994
with:
8095
name: emqx_built
81-
path: emqx_built
82-
- name: Prepare packages
96+
path: .
97+
- name: run relup test
8398
run: |
8499
set -e -x -u
85-
mkdir -p packages
86-
cp emqx_built/_packages/*/*.tar.gz packages
87-
cd packages
88-
case "$OLD_VSN" in
89-
e*)
90-
profile='emqx-enterprise'
91-
s3dir='emqx-ee'
92-
;;
93-
v*)
94-
profile='emqx'
95-
s3dir='emqx-ce'
96-
;;
97-
*)
98-
echo "unknown old version $OLD_VSN"
99-
exit 1
100-
;;
101-
esac
102-
wget --no-verbose https://s3-us-west-2.amazonaws.com/packages.emqx/${s3dir}/$OLD_VSN/${profile}-${OLD_VSN#[e|v]}-otp24.2.1-1-ubuntu20.04-amd64.tar.gz
103-
- name: Run relup test scenario
104-
timeout-minutes: 5
105-
run: |
106-
set -x
107-
case "$OLD_VSN" in
108-
e*)
109-
cur_vsn=$CUR_EE_VSN
110-
profile='emqx-enterprise'
111-
;;
112-
v*)
113-
cur_vsn=$CUR_CE_VSN
114-
profile='emqx'
115-
;;
116-
esac
117-
old_pkg="${profile}-${OLD_VSN#[e|v]}-otp24.2.1-1-ubuntu20.04-amd64.tar.gz"
118-
cur_pkg="${profile}-${cur_vsn}-otp24.2.1-1-ubuntu20.04-amd64.tar.gz"
119-
lux \
120-
--progress verbose \
121-
--case_timeout infinity \
122-
--var PROJ_ROOT="$(pwd)" \
123-
--var PROFILE="$profile" \
124-
--var VSN="$cur_vsn" \
125-
--var OLD_VSN="$OLD_VSN" \
126-
--var CUR_PKG="$cur_pkg" \
127-
--var OLD_PKG="$old_pkg" \
128-
emqx_built/.ci/fvt_tests/relup.lux
100+
cd emqx
101+
if ! ./scripts/relup/run-relup-lux.sh $OLD_VSN; then
102+
docker logs node1.emqx.io | tee lux_logs/emqx1.log
103+
docker logs node2.emqx.io | tee lux_logs/emqx2.log
104+
exit 1
105+
fi
129106
- uses: actions/upload-artifact@v2
130107
name: Save debug data
131108
if: failure()
132109
with:
133110
name: debug_data
134111
path: |
135-
packages/emqx1/*
136-
packages/emqx2/*
137-
lux_logs
112+
wd/lux_logs

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,4 @@ mix.lock
6666
apps/emqx/test/emqx_static_checks_data/master.bpapi
6767
# rendered configurations
6868
*.conf.rendered
69+
lux_logs/

0 commit comments

Comments
 (0)