Browse Source

Merge pull request #4055 from zmstone/chore-otp23-for-430

chore(CI): Put OTP 23 on trial
Zaiming Shi 5 years ago
parent
commit
da406689c5

+ 2 - 2
.ci/apps_tests/docker-compose.yaml

@@ -3,7 +3,7 @@ version: '3'
 services:
   erlang:
     container_name: erlang
-    image: erlang:22.3.4.13
+    image: emqx/build-env:erl23.2.2-ubuntu20.04
     depends_on:
       - mysql_server
       - redis_server
@@ -82,7 +82,7 @@ services:
     build:
       context: ../..
       dockerfile: .ci/apps_tests/openldap/Dockerfile
-      args: 
+      args:
         LDAP_TAG: ${LDAP_TAG}
     image: emqx-ldap:1.0
     ports:

+ 1 - 1
.ci/build_packages/Dockerfile

@@ -1,4 +1,4 @@
-ARG BUILD_FROM=emqx/build-env:erl22.3.4.13-ubuntu20.04
+ARG BUILD_FROM=emqx/build-env:erl23.2.2-ubuntu20.04
 FROM ${BUILD_FROM}
 
 ARG EMQX_NAME=emqx

+ 1 - 1
.ci/compatibility_tests/docker-compose-ldap.yaml

@@ -3,7 +3,7 @@ version: '3'
 services:
   erlang:
     container_name: erlang
-    image: erlang:22.3.4.13
+    image: emqx/build-env:erl23.2.2-ubuntu20.04
     depends_on:
       - ldap_server
     networks:

+ 2 - 2
.ci/compatibility_tests/docker-compose-mongo-tls.yaml

@@ -3,7 +3,7 @@ version: '3'
 services:
   erlang:
     container_name: erlang
-    image: erlang:22.3.4.13
+    image: emqx/build-env:erl23.2.2-ubuntu20.04
     volumes:
       - ../../:/emqx
     working_dir: /emqx
@@ -14,7 +14,7 @@ services:
     tty: true
 
   mongo_server:
-    container_name: mongo 
+    container_name: mongo
     image: mongo:${MONGO_TAG}
     restart: always
     environment:

+ 1 - 1
.ci/compatibility_tests/docker-compose-mongo.yaml

@@ -3,7 +3,7 @@ version: '3'
 services:
   erlang:
     container_name: erlang
-    image: erlang:22.3.4.13
+    image: emqx/build-env:erl23.2.2-ubuntu20.04
     volumes:
       - ../..:/emqx
     working_dir: /emqx

+ 1 - 1
.ci/compatibility_tests/docker-compose-mysql-tls.yaml

@@ -3,7 +3,7 @@ version: '3'
 services:
   erlang:
     container_name: erlang
-    image: erlang:22.3.4.13
+    image: emqx/build-env:erl23.2.2-ubuntu20.04
     volumes:
       - ../../:/emqx
     working_dir: /emqx

+ 1 - 1
.ci/compatibility_tests/docker-compose-mysql.yaml

@@ -3,7 +3,7 @@ version: '3'
 services:
   erlang:
     container_name: erlang
-    image: erlang:22.3.4.13
+    image: emqx/build-env:erl23.2.2-ubuntu20.04
     volumes:
       - ../../:/emqx
     working_dir: /emqx

+ 1 - 1
.ci/compatibility_tests/docker-compose-pgsql-tls.yaml

@@ -3,7 +3,7 @@ version: '3'
 services:
   erlang:
     container_name: erlang
-    image: erlang:22.3.4.13
+    image: emqx/build-env:erl23.2.2-ubuntu20.04
     volumes:
       - ../../:/emqx
     working_dir: /emqx

+ 1 - 1
.ci/compatibility_tests/docker-compose-pgsql.yaml

@@ -3,7 +3,7 @@ version: '3'
 services:
   erlang:
     container_name: erlang
-    image: erlang:22.3.4.13
+    image: emqx/build-env:erl23.2.2-ubuntu20.04
     volumes:
       - ../../:/emqx
     working_dir: /emqx

+ 1 - 1
.ci/compatibility_tests/docker-compose-redis-cluster-tls.yaml

@@ -5,7 +5,7 @@ version: '2.4'
 services:
   erlang:
     container_name: erlang
-    image: erlang:22.3.4.13
+    image: emqx/build-env:erl23.2.2-ubuntu20.04
     volumes:
       - ../..:/emqx
     networks:

+ 1 - 1
.ci/compatibility_tests/docker-compose-redis-cluster.yaml

@@ -5,7 +5,7 @@ version: '2.4'
 services:
   erlang:
     container_name: erlang
-    image: erlang:22.3.4.13
+    image: emqx/build-env:erl23.2.2-ubuntu20.04
     volumes:
       - ../..:/emqx
     networks:

+ 1 - 1
.ci/compatibility_tests/docker-compose-redis-sentinel.yaml

@@ -5,7 +5,7 @@ version: '2.4'
 services:
   erlang:
     container_name: erlang
-    image: erlang:22.3.4.13
+    image: emqx/build-env:erl23.2.2-ubuntu20.04
     volumes:
       - ../..:/emqx
     networks:

+ 2 - 2
.ci/compatibility_tests/docker-compose-redis-single-tls.yaml

@@ -3,7 +3,7 @@ version: '3'
 services:
   erlang:
     container_name: erlang
-    image: erlang:22.3.4.13
+    image: emqx/build-env:erl23.2.2-ubuntu20.04
     volumes:
       - ../..:/emqx
     networks:
@@ -14,7 +14,7 @@ services:
     tty: true
 
   redis_server:
-    container_name: redis 
+    container_name: redis
     image: redis:${REDIS_TAG}
     volumes:
       - ../../apps/emqx_auth_redis/test/emqx_auth_redis_SUITE_data/certs:/tls

+ 1 - 1
.ci/compatibility_tests/docker-compose-redis-single.yaml

@@ -3,7 +3,7 @@ version: '3'
 services:
   erlang:
     container_name: erlang
-    image: erlang:22.3.4.13
+    image: emqx/build-env:erl23.2.2-ubuntu20.04
     volumes:
       - ../..:/emqx
     networks:

+ 7 - 7
.github/workflows/build_packages.yaml

@@ -22,7 +22,7 @@ jobs:
     - uses: gleam-lang/setup-erlang@v1.1.0
       id: install_erlang
       with:
-        otp-version: 22.3
+        otp-version: 23.2
     - name: build
       run: |
         #     set-executionpolicy remotesigned -s cu
@@ -81,11 +81,11 @@ jobs:
         git config --global credential.helper store
     - name: build erlang
       run: |
-        kerl build 22.3.4.13
-        kerl install 22.3.4.13 $HOME/.kerl/22.3.4.13
+        kerl build 23.2.2
+        kerl install 23.2.2 $HOME/.kerl/23.2.2
     - name: build
       run: |
-        . $HOME/.kerl/22.3.4.13/activate
+        . $HOME/.kerl/23.2.2/activate
         make emqx-pkg
     - name: test
       run: |
@@ -155,7 +155,7 @@ jobs:
     - uses: actions/checkout@v1
     - name: get deps
       env:
-        ERL_OTP: erl22.3.4.13
+        ERL_OTP: erl23.2.2
       run: |
         docker run -i --rm \
             -e GITHUB_RUN_ID=$GITHUB_RUN_ID \
@@ -191,7 +191,7 @@ jobs:
     - name: build emqx packages
       if: (matrix.arch  == 'amd64' && matrix.emqx == 'emqx') || startsWith(github.ref, 'refs/tags/')
       env:
-        ERL_OTP: erl22.3.4.13
+        ERL_OTP: erl23.2.2
         EMQX: ${{ matrix.emqx }}
         ARCH: ${{ matrix.arch }}
         SYSTEM: ${{ matrix.os }}
@@ -245,7 +245,7 @@ jobs:
     - uses: actions/checkout@v1
     - name: get deps
       env:
-        ERL_OTP: erl22.3.4.13
+        ERL_OTP: erl23.2.2
       run: |
         docker run -i --rm \
             -e GITHUB_RUN_ID=$GITHUB_RUN_ID \

+ 1 - 1
.github/workflows/run_fvt_tests.yaml

@@ -117,7 +117,7 @@ jobs:
 
     relup_test:
         runs-on: ubuntu-20.04
-        container: emqx/build-env:erl22.3.4.13-ubuntu20.04
+        container: emqx/build-env:erl23.2.2-ubuntu20.04
         defaults:
           run:
             shell: bash

+ 3 - 3
README.md

@@ -89,9 +89,9 @@ make eunit ct
 examples
 
 ```bash
-./rebar3 ct --dir test,apps/emqx_sn,apps/emqx_coap
-./rebar3 ct --dir apps/emqx_auth_mnesi --suite emqx_acl_mnesia_SUITE
-./rebar3 ct --dir apps/emqx_auth_mnesi --suite emqx_acl_mnesia_SUITE --case t_rest_api
+./rebar3 ct --name 'test@127.0.0.1' -c -v --dir test,apps/emqx_sn,apps/emqx_coap
+./rebar3 ct --name 'test@127.0.0.1' -c -v --dir apps/emqx_auth_mnesi --suite emqx_acl_mnesia_SUITE
+./rebar3 ct --name 'test@127.0.0.1' -c -v --dir apps/emqx_auth_mnesi --suite emqx_acl_mnesia_SUITE --case t_rest_api
 ```
 
 NOTE: Do *NOT* use full (relative) path to SUITE files like this `--suite apps/emqx_auth_mnesia/test/emqx_acl_mnesia_SUITE.erl`,

+ 10 - 1
apps/emqx_recon/src/emqx_recon_cli.erl

@@ -42,7 +42,7 @@ cmd(["node_stats"]) ->
     recon:node_stats_print(10, 1000);
 
 cmd(["remote_load", Mod]) ->
-    emqx_ctl:print("~p~n", [recon:remote_load(list_to_atom(Mod))]);
+    emqx_ctl:print("~p~n", [remote_load(list_to_atom(Mod))]);
 
 cmd(["proc_count", Attr, N]) ->
     emqx_ctl:print("~p~n", [recon:proc_count(list_to_atom(Attr), list_to_integer(N))]);
@@ -61,3 +61,12 @@ unload() ->
 concat(Key, Keyword) ->
     lists:concat([atom_to_list(Key), "/", atom_to_list(Keyword)]).
 
+remote_load(Module) -> remote_load(nodes(), Module).
+
+%% recon:remote_load/1 has a bug, when nodes() returns [], it is
+%% taken by recon as a node name.
+%% before OTP 23, the call returns a 'badrpc' tuple
+%% after OTP 23, it crashes with 'badarg' error
+remote_load([], _Module) -> ok;
+remote_load(Nodes, Module) -> recon:remote_load(Nodes, Module).
+

+ 1 - 1
deploy/docker/Dockerfile

@@ -1,4 +1,4 @@
-ARG BUILD_FROM=emqx/build-env:erl22.3-alpine-amd64
+ARG BUILD_FROM=emqx/build-env:erl23.2.2-alpine-amd64
 ARG RUN_FROM=alpine:3.11
 FROM ${BUILD_FROM} AS builder
 

+ 3 - 3
docker.mk

@@ -21,7 +21,7 @@ docker-prepare:
 	# @echo "PREPARE: Setting up dependencies."
 	# @apt update -y
 	# @apt install --only-upgrade docker-ce -y
-	
+
 	## Update docker configuration to enable docker manifest command
 	@echo "PREPARE: Updating docker configuration"
 	@mkdir -p $$HOME/.docker
@@ -45,7 +45,7 @@ docker-build:
 	## Prepare qemu to build images other then x86_64 on travis
 	@echo "PREPARE: Qemu" \
 	&& docker run --rm --privileged multiarch/qemu-user-static:register --reset
-  
+
 	@mkdir -p tmp \
 	&& cd tmp \
 	&& curl -L -o qemu-$(QEMU_ARCH)-static.tar.gz https://github.com/multiarch/qemu-user-static/releases/download/$(QEMU_VERSION)/qemu-$(QEMU_ARCH)-static.tar.gz \
@@ -54,7 +54,7 @@ docker-build:
 
 	@docker build --no-cache \
 		--build-arg PKG_VSN=$(PKG_VSN)  \
-		--build-arg BUILD_FROM=emqx/build-env:erl22.3-alpine-$(ARCH)  \
+		--build-arg BUILD_FROM=emqx/build-env:erl23.2.2-alpine-$(ARCH)  \
 		--build-arg RUN_FROM=$(ARCH)/alpine:3.11 \
 		--build-arg EMQX_NAME=$(EMQX_NAME) \
 		--build-arg QEMU_ARCH=$(QEMU_ARCH) \

+ 1 - 1
rebar.config.erl

@@ -29,7 +29,7 @@ plugins() ->
 
 test_deps() ->
     [ {bbmustache, "1.10.0"}
-    , {emqx_ct_helpers, {git, "https://github.com/emqx/emqx-ct-helpers", {tag, "1.3.2"}}}
+    , {emqx_ct_helpers, {git, "https://github.com/emqx/emqx-ct-helpers", {tag, "1.3.4"}}}
     , meck
     ].