Просмотр исходного кода

ci: include OTP-25 in some workflows

* Use OTP-25 exclusively for Elixir builds
* Include OTP-25 in slim package builds
* Include OTP-25 in test workflow matrices
Andrew Mayorov 3 лет назад
Родитель
Сommit
2e1cdd039e

+ 1 - 1
.ci/docker-compose-file/Makefile.local

@@ -2,7 +2,7 @@
 
 define usage
 make -f .ci/docker-compose-file/Makefile.local up
-make -f .ci/docker-compose-file/Makefile.local ct CONTAINER=erlang24 SUITE=apps/emqx_authn/test/emqx_authn_mnesia_SUITE.erl
+make -f .ci/docker-compose-file/Makefile.local ct CONTAINER=erlang SUITE=apps/emqx_authn/test/emqx_authn_mnesia_SUITE.erl
 make -f .ci/docker-compose-file/Makefile.local down
 endef
 export usage

+ 1 - 1
.ci/docker-compose-file/docker-compose-kafka.yaml

@@ -19,7 +19,7 @@ services:
     command: /bin/generate-certs.sh
   kdc:
     hostname: kdc.emqx.net
-    image:  ghcr.io/emqx/emqx-builder/5.0-17:1.13.4-24.2.1-1-ubuntu20.04
+    image:  ghcr.io/emqx/emqx-builder/5.0-26:1.13.4-24.3.4.2-1-ubuntu20.04
     container_name: kdc.emqx.net
     networks:
       emqx_bridge:

+ 3 - 3
.ci/docker-compose-file/docker-compose.yaml

@@ -1,9 +1,9 @@
 version: '3.9'
 
 services:
-  erlang24:
-    container_name: erlang24
-    image: ghcr.io/emqx/emqx-builder/5.0-17:1.13.4-24.2.1-1-ubuntu20.04
+  erlang:
+    container_name: erlang
+    image: ${DOCKER_CT_RUNNER_IMAGE:-ghcr.io/emqx/emqx-builder/5.0-26:1.13.4-24.3.4.2-1-ubuntu20.04}
     env_file:
       - conf.env
     environment:

+ 1 - 1
.github/actions/package-macos/action.yaml

@@ -3,7 +3,7 @@ inputs:
   profile: # emqx, emqx-enterprise
     required: true
     type: string
-  otp: # 24.2.1-1, 23.3.4.9-3
+  otp: # 25.1.2-2, 24.3.4.2-1
     required: true
     type: string
   os:

+ 11 - 7
.github/workflows/build_and_push_docker_images.yaml

@@ -23,7 +23,7 @@ jobs:
   prepare:
     runs-on: ubuntu-20.04
     # prepare source with any OTP version, no need for a matrix
-    container: "ghcr.io/emqx/emqx-builder/5.0-24:1.13.4-24.3.4.2-1-ubuntu20.04"
+    container: "ghcr.io/emqx/emqx-builder/5.0-26:1.13.4-24.3.4.2-1-ubuntu20.04"
 
     outputs:
       BUILD_PROFILE: ${{ steps.get_profile.outputs.BUILD_PROFILE }}
@@ -119,8 +119,10 @@ jobs:
           - [debian11, "debian:11-slim", "deploy/docker/Dockerfile"]
         # NOTE: 'otp' and 'elixir' are to configure emqx-builder image
         #       only support latest otp and elixir, not a matrix
+        builder:
+          - 5.0-26 # update to latest
         otp:
-          - 24.3.4.2-1 # update to latest
+          - 24.3.4.2-1 # switch to 25 once ready to release 5.1
         elixir:
           - 1.13.4 # update to latest
         exclude: # TODO: publish enterprise to ecr too?
@@ -174,7 +176,7 @@ jobs:
         tags: ${{ steps.meta.outputs.tags }}
         labels: ${{ steps.meta.outputs.labels }}
         build-args: |
-          BUILD_FROM=ghcr.io/emqx/emqx-builder/5.0-24:${{ matrix.elixir }}-${{ matrix.otp }}-${{ matrix.os[0] }}
+          BUILD_FROM=ghcr.io/emqx/emqx-builder/${{ matrix.builder }}:${{ matrix.elixir }}-${{ matrix.otp }}-${{ matrix.os[0] }}
           RUN_FROM=${{ matrix.os[1] }}
           EMQX_NAME=${{ steps.meta.outputs.emqx_name }}
         file: source/${{ matrix.os[2] }}
@@ -208,8 +210,10 @@ jobs:
           - 'docker.io'
         os:
           - [debian11, "debian:11-slim", "deploy/docker/Dockerfile"]
+        builder:
+          - 5.0-26 # update to latest
         otp:
-          - 24.3.4.2-1 # update to latest
+          - 25.1.2-2 # update to latest
         elixir:
           - 1.13.4 # update to latest
 
@@ -252,7 +256,7 @@ jobs:
         tags: ${{ steps.meta.outputs.tags }}
         labels: ${{ steps.meta.outputs.labels }}
         build-args: |
-          BUILD_FROM=ghcr.io/emqx/emqx-builder/5.0-24:${{ matrix.elixir }}-${{ matrix.otp }}-${{ matrix.os[0] }}
+          BUILD_FROM=ghcr.io/emqx/emqx-builder/${{ matrix.builder }}:${{ matrix.elixir }}-${{ matrix.otp }}-${{ matrix.os[0] }}
           RUN_FROM=${{ matrix.os[1] }}
           EMQX_NAME=${{ steps.meta.outputs.emqx_name }}
         file: source/${{ matrix.os[2] }}
@@ -277,7 +281,7 @@ jobs:
           - [debian11, "debian:11-slim", "deploy/docker/Dockerfile"]
         # NOTE: only support latest otp version, not a matrix
         otp:
-          - 24.3.4.2-1 # update to latest
+          - 24.3.4.2-1 # switch to 25 once ready to release 5.1
         registry:
           - 'docker.io'
           - 'public.ecr.aws'
@@ -342,7 +346,7 @@ jobs:
           - ${{ needs.prepare.outputs.BUILD_PROFILE }}
         # NOTE: for docker, only support latest otp version, not a matrix
         otp:
-          - 24.3.4.2-1 # update to latest
+          - 25.1.2-2 # update to latest
         elixir:
           - 1.13.4 # update to latest
         registry:

+ 8 - 5
.github/workflows/build_packages.yaml

@@ -23,7 +23,7 @@ on:
 jobs:
   prepare:
     runs-on: ubuntu-20.04
-    container: ghcr.io/emqx/emqx-builder/5.0-24:1.13.4-24.3.4.2-1-ubuntu20.04
+    container: ghcr.io/emqx/emqx-builder/5.0-26:1.13.4-24.3.4.2-1-ubuntu20.04
     outputs:
       BUILD_PROFILE: ${{ steps.get_profile.outputs.BUILD_PROFILE }}
       IS_EXACT_TAG: ${{ steps.get_profile.outputs.IS_EXACT_TAG }}
@@ -48,7 +48,7 @@ jobs:
             echo "WARN: This is NOT an exact git tag, will not publish release"
             is_exact_tag='false'
           fi
-          echo "::set-output name=IS_EXACT_TAG::${is_exact_tag}"
+          echo "IS_EXACT_TAG=${is_exact_tag}" >> $GITHUB_OUTPUT
           case $tag in
             refs/tags/v*)
               PROFILE='emqx'
@@ -103,7 +103,7 @@ jobs:
     - uses: ilammy/msvc-dev-cmd@v1.12.0
     - uses: erlef/setup-beam@v1
       with:
-        otp-version: 24.2.1
+        otp-version: 24.3.4
     - name: build
       env:
         PYTHON: python
@@ -173,13 +173,15 @@ jobs:
     needs: prepare
     runs-on: ${{ matrix.build_machine }}
     container:
-      image: "ghcr.io/emqx/emqx-builder/5.0-24:${{ matrix.elixir }}-${{ matrix.otp }}-${{ matrix.os }}"
+      image: "ghcr.io/emqx/emqx-builder/${{ matrix.builder }}:${{ matrix.elixir }}-${{ matrix.otp }}-${{ matrix.os }}"
 
     strategy:
       fail-fast: false
       matrix:
         profile:
           - ${{ needs.prepare.outputs.BUILD_PROFILE }}
+        builder:
+          - 5.0-26
         otp:
           - 24.3.4.2-1
         elixir:
@@ -244,6 +246,7 @@ jobs:
     - name: build emqx packages
       working-directory: source
       env:
+        BUILDER: ${{ matrix.builder }}
         OTP: ${{ matrix.otp }}
         ELIXIR: ${{ matrix.elixir }}
         PROFILE: ${{ matrix.profile }}
@@ -272,7 +275,7 @@ jobs:
             --pkgtype "${PKGTYPE}" \
             --arch "${ARCH}" \
             --elixir "${IsElixir}" \
-            --builder "ghcr.io/emqx/emqx-builder/5.0-24:${ELIXIR}-${OTP}-${SYSTEM}"
+            --builder "ghcr.io/emqx/emqx-builder/${BUILDER}:${ELIXIR}-${OTP}-${SYSTEM}"
         done
     - uses: actions/upload-artifact@v3
       with:

+ 8 - 3
.github/workflows/build_slim_packages.yaml

@@ -31,12 +31,15 @@ jobs:
         profile:
         - ["emqx", "el7"]
         - ["emqx-enterprise", "ubuntu20.04"]
+        builder:
+        - 5.0-26
         otp:
         - 24.3.4.2-1
+        - 25.1.2-2
         elixir:
         - 1.13.4
 
-    container: "ghcr.io/emqx/emqx-builder/5.0-24:${{ matrix.elixir }}-${{ matrix.otp }}-${{ matrix.profile[1] }}"
+    container: "ghcr.io/emqx/emqx-builder/${{ matrix.builder }}:${{ matrix.elixir }}-${{ matrix.otp }}-${{ matrix.profile[1] }}"
 
     steps:
     - uses: AutoModality/action-clean@v1
@@ -89,7 +92,8 @@ jobs:
         profile:
           - emqx
         otp:
-          - 24.2.1
+          - 24.3.4
+          - 25.1.2
     steps:
     - uses: actions/checkout@v3
     - uses: ilammy/msvc-dev-cmd@v1.12.0
@@ -119,7 +123,7 @@ jobs:
     - uses: actions/upload-artifact@v3
       with:
         name: windows
-        path: _packages/${{ matrix.profile}}/*
+        path: _packages/${{ matrix.profile }}/*
 
   mac:
     strategy:
@@ -130,6 +134,7 @@ jobs:
         - emqx-enterprise
         otp:
         - 24.3.4.2-1
+        - 25.1.2-2
         os:
         - macos-11
         - macos-12-arm64

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

@@ -5,7 +5,7 @@ on: [pull_request, push]
 jobs:
   check_deps_integrity:
     runs-on: ubuntu-20.04
-    container: ghcr.io/emqx/emqx-builder/5.0-24:1.13.4-24.3.4.2-1-ubuntu20.04
+    container: ghcr.io/emqx/emqx-builder/5.0-26:1.13.4-25.1.2-2-ubuntu20.04
 
     steps:
       - uses: actions/checkout@v3

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

@@ -5,7 +5,7 @@ on: [pull_request]
 jobs:
   code_style_check:
     runs-on: ubuntu-20.04
-    container: "ghcr.io/emqx/emqx-builder/5.0-24:1.13.4-24.3.4.2-1-ubuntu20.04"
+    container: "ghcr.io/emqx/emqx-builder/5.0-26:1.13.4-25.1.2-2-ubuntu20.04"
     steps:
       - uses: actions/checkout@v3
         with:

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

@@ -8,7 +8,7 @@ jobs:
   elixir_apps_check:
     runs-on: ubuntu-latest
     # just use the latest builder
-    container: "ghcr.io/emqx/emqx-builder/5.0-24:1.13.4-24.3.4.2-1-ubuntu20.04"
+    container: "ghcr.io/emqx/emqx-builder/5.0-26:1.13.4-25.1.2-2-ubuntu20.04"
 
     strategy:
       fail-fast: false

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

@@ -7,7 +7,7 @@ on: [pull_request, push]
 jobs:
   elixir_deps_check:
     runs-on: ubuntu-20.04
-    container: ghcr.io/emqx/emqx-builder/5.0-24:1.13.4-24.3.4.2-1-ubuntu20.04
+    container: ghcr.io/emqx/emqx-builder/5.0-26:1.13.4-25.1.2-2-ubuntu20.04
 
     steps:
       - name: Checkout

+ 1 - 2
.github/workflows/elixir_release.yml

@@ -17,8 +17,7 @@ jobs:
         profile:
           - emqx
           - emqx-enterprise
-    container: ghcr.io/emqx/emqx-builder/5.0-24:1.13.4-24.3.4.2-1-ubuntu20.04
-
+    container: ghcr.io/emqx/emqx-builder/5.0-26:1.13.4-25.1.2-2-ubuntu20.04
     steps:
       - name: Checkout
         uses: actions/checkout@v3

+ 4 - 1
.github/workflows/run_emqx_app_tests.yaml

@@ -11,8 +11,11 @@ jobs:
   run_emqx_app_tests:
     strategy:
       matrix:
+        builder:
+          - 5.0-26
         otp:
           - 24.3.4.2-1
+          - 25.1.2-2
         # no need to use more than 1 version of Elixir, since tests
         # run using only Erlang code.  This is needed just to specify
         # the base image.
@@ -34,7 +37,7 @@ jobs:
             use-self-hosted: false
 
     runs-on: ${{ matrix.runs-on }}
-    container: "ghcr.io/emqx/emqx-builder/5.0-24:${{ matrix.elixir}}-${{ matrix.otp }}-${{ matrix.os }}"
+    container: "ghcr.io/emqx/emqx-builder/${{ matrix.builder }}:${{ matrix.elixir}}-${{ matrix.otp }}-${{ matrix.os }}"
 
     defaults:
       run:

+ 9 - 5
.github/workflows/run_fvt_tests.yaml

@@ -16,7 +16,7 @@ jobs:
   prepare:
     runs-on: ubuntu-20.04
     # prepare source with any OTP version, no need for a matrix
-    container: ghcr.io/emqx/emqx-builder/5.0-24:1.13.4-24.3.4.2-1-alpine3.15.1
+    container: ghcr.io/emqx/emqx-builder/5.0-26:1.13.4-24.3.4.2-1-alpine3.15.1
 
     steps:
       - uses: actions/checkout@v3
@@ -48,6 +48,8 @@ jobs:
           - rlog
         os:
           - ["alpine3.15.1", "alpine:3.15.1"]
+        builder:
+          - 5.0-26
         otp:
           - 24.3.4.2-1
         elixir:
@@ -57,7 +59,7 @@ jobs:
     steps:
     - uses: erlef/setup-beam@v1
       with:
-        otp-version: "24.2"
+        otp-version: 24.3.4
     - uses: actions/download-artifact@v3
       with:
         name: source
@@ -68,7 +70,7 @@ jobs:
     - name: make docker image
       working-directory: source
       env:
-        EMQX_BUILDER: ghcr.io/emqx/emqx-builder/5.0-24:${{ matrix.elixir }}-${{ matrix.otp }}-${{ matrix.os[0] }}
+        EMQX_BUILDER: ghcr.io/emqx/emqx-builder/${{ matrix.builder }}:${{ matrix.elixir }}-${{ matrix.otp }}-${{ matrix.os[0] }}
         EMQX_RUNNER: ${{ matrix.os[1] }}
       run: |
         make ${{ matrix.profile }}-docker
@@ -119,6 +121,8 @@ jobs:
         - emqx-enterprise
         os:
         - ["debian11", "debian:11-slim"]
+        builder:
+        - 5.0-26
         otp:
         - 24.3.4.2-1
         elixir:
@@ -130,7 +134,7 @@ jobs:
     steps:
     - uses: erlef/setup-beam@v1
       with:
-        otp-version: "24.2"
+        otp-version: 24.3.4
     - uses: actions/download-artifact@v3
       with:
         name: source
@@ -141,7 +145,7 @@ jobs:
     - name: make docker image
       working-directory: source
       env:
-        EMQX_BUILDER: ghcr.io/emqx/emqx-builder/5.0-24:${{ matrix.elixir }}-${{ matrix.otp }}-${{ matrix.os[0] }}
+        EMQX_BUILDER: ghcr.io/emqx/emqx-builder/${{ matrix.builder }}:${{ matrix.elixir }}-${{ matrix.otp }}-${{ matrix.os[0] }}
         EMQX_RUNNER: ${{ matrix.os[1] }}
       run: |
         make ${{ matrix.profile }}-docker

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

@@ -16,7 +16,7 @@ jobs:
     steps:
     - uses: erlef/setup-beam@v1
       with:
-        otp-version: "24.2"
+        otp-version: 24.3
     - name: download jmeter
       timeout-minutes: 3
       env:
@@ -36,7 +36,7 @@ jobs:
         PROFILE='emqx'
         make "${PROFILE}-docker"
         VSN="$(./pkg-vsn.sh $PROFILE)"
-        echo "::set-output name=version::${VSN}"
+        echo "version=${VSN}" >> $GITHUB_OUTPUT
         docker save -o emqx.tar emqx/emqx:${VSN}
     - uses: actions/upload-artifact@v3
       with:
@@ -59,7 +59,7 @@ jobs:
     steps:
     - uses: erlef/setup-beam@v1
       with:
-        otp-version: "24.2"
+        otp-version: 24.3
     - uses: actions/checkout@v3
     - uses: actions/download-artifact@v3
       with:
@@ -155,7 +155,7 @@ jobs:
     steps:
     - uses: erlef/setup-beam@v1
       with:
-        otp-version: "24.2"
+        otp-version: 24.3
     - uses: actions/checkout@v3
     - uses: actions/download-artifact@v3
       with:
@@ -261,7 +261,7 @@ jobs:
     steps:
     - uses: erlef/setup-beam@v1
       with:
-        otp-version: "24.2"
+        otp-version: 24.3
     - uses: actions/checkout@v3
     - uses: actions/download-artifact@v3
       with:
@@ -363,7 +363,7 @@ jobs:
     steps:
     - uses: erlef/setup-beam@v1
       with:
-        otp-version: "24.2"
+        otp-version: 24.3
     - uses: actions/checkout@v3
     - uses: actions/download-artifact@v3
       with:
@@ -462,7 +462,7 @@ jobs:
     steps:
     - uses: erlef/setup-beam@v1
       with:
-        otp-version: "24.2"
+        otp-version: 24.3
     - uses: actions/checkout@v3
     - uses: actions/download-artifact@v3
       with:

+ 4 - 4
.github/workflows/run_relup_tests.yaml

@@ -16,7 +16,7 @@ on:
 jobs:
   relup_test_plan:
     runs-on: ubuntu-20.04
-    container: "ghcr.io/emqx/emqx-builder/5.0-24:1.13.4-24.3.4.2-1-ubuntu20.04"
+    container: "ghcr.io/emqx/emqx-builder/5.0-26:1.13.4-24.3.4.2-1-ubuntu20.04"
     outputs:
       CUR_EE_VSN: ${{ steps.find-versions.outputs.CUR_EE_VSN }}
       OLD_VERSIONS: ${{ steps.find-versions.outputs.OLD_VERSIONS }}
@@ -37,8 +37,8 @@ jobs:
         ee_vsn="$(./pkg-vsn.sh enterprise)"
         old_ee_vsns="$(./scripts/relup-build/base-vsns.sh enterprise | xargs)"
         old_vsns=$(echo -n "${old_ee_vsns}" | sed 's/ $//g' | jq -R -s -c 'split(" ")')
-        echo "::set-output name=CUR_EE_VSN::$ee_vsn"
-        echo "::set-output name=OLD_VERSIONS::$old_vsns"
+        echo "CUR_EE_VSN=$ee_vsn" >> $GITHUB_OUTPUT
+        echo "OLD_VERSIONS=$old_vsns" >> $GITHUB_OUTPUT
     - name: build emqx
       run: |
         set -x
@@ -74,7 +74,7 @@ jobs:
       # setup Erlang to run lux
     - uses: erlef/setup-beam@v1
       with:
-        otp-version: "24.2"
+        otp-version: 24.3
     - uses: actions/checkout@v3
       with:
         repository: hawk/lux

+ 52 - 53
.github/workflows/run_test_cases.yaml

@@ -16,8 +16,20 @@ on:
 jobs:
     prepare:
         runs-on: aws-amd64
-        # prepare source with any OTP version, no need for a matrix
-        container: "ghcr.io/emqx/emqx-builder/5.0-24:1.13.4-24.3.4.2-1-ubuntu20.04"
+        strategy:
+          fail-fast: false
+          matrix:
+            profile:
+            - emqx
+            - emqx-enterprise
+            builder:
+            - 5.0-26
+            otp:
+            - 24.3.4.2-1
+            - 25.1.2-2
+            elixir:
+            - 1.13.4
+        container: "ghcr.io/emqx/emqx-builder/${{ matrix.builder }}:${{ matrix.elixir }}-${{ matrix.otp }}-ubuntu20.04"
         outputs:
           fast_ct_apps: ${{ steps.find_ct_apps.outputs.fast_ct_apps }}
           docker_ct_apps: ${{ steps.find_ct_apps.outputs.docker_ct_apps }}
@@ -32,57 +44,27 @@ jobs:
           run: |
             fast_ct_apps="$(./scripts/find-apps.sh --ci fast)"
             docker_ct_apps="$(./scripts/find-apps.sh --ci docker)"
-            echo "fast: $fast_ct_apps"
-            echo "docker: $docker_ct_apps"
-            echo "::set-output name=fast_ct_apps::$fast_ct_apps"
-            echo "::set-output name=docker_ct_apps::$docker_ct_apps"
-        - name: get_all_deps
-          working-directory: source
-          env:
-            PROFILE: emqx
-              #DIAGNOSTIC: 1
-          run: |
-            make ensure-rebar3
-            # fetch all deps and compile
-            make emqx
-            make test-compile
-            cd ..
-            zip -ryq source.zip source/* source/.[^.]*
-        - uses: actions/upload-artifact@v3
-          with:
-            name: source-emqx
-            path: source.zip
-
-    prepare_ee:
-        runs-on: aws-amd64
-        # prepare source with any OTP version, no need for a matrix
-        container: "ghcr.io/emqx/emqx-builder/5.0-18:1.13.4-24.3.4.2-1-ubuntu20.04"
-        steps:
-        - uses: AutoModality/action-clean@v1
-        - uses: actions/checkout@v3
-          with:
-            path: source
+            echo "fast_ct_apps=$fast_ct_apps" | tee -a $GITHUB_OUTPUT
+            echo "docker_ct_apps=$docker_ct_apps" | tee -a $GITHUB_OUTPUT
         - name: get_all_deps
           working-directory: source
           env:
-            PROFILE: emqx-enterprise
+            PROFILE: ${{ matrix.profile }}
               #DIAGNOSTIC: 1
           run: |
             make ensure-rebar3
             # fetch all deps and compile
-            make emqx-enterprise
+            make ${{ matrix.profile }}
             make test-compile
             cd ..
             zip -ryq source.zip source/* source/.[^.]*
         - uses: actions/upload-artifact@v3
           with:
-            name: source-emqx-enterprise
+            name: source-${{ matrix.profile }}-${{ matrix.otp }}
             path: source.zip
 
     eunit_and_proper:
-        needs:
-          - prepare
-          - prepare_ee
+        needs: [prepare]
         runs-on: ${{ matrix.runs-on }}
         strategy:
           fail-fast: false
@@ -90,6 +72,13 @@ jobs:
             profile:
               - emqx
               - emqx-enterprise
+            builder:
+              - 5.0-26
+            otp:
+              - 24.3.4.2-1
+              - 25.1.2-2
+            elixir:
+              - 1.13.4
             runs-on:
               - aws-amd64
               - ubuntu-20.04
@@ -104,17 +93,15 @@ jobs:
         defaults:
           run:
             shell: bash
-        container: "ghcr.io/emqx/emqx-builder/5.0-24:1.13.4-24.3.4.2-1-ubuntu20.04"
+        container: "ghcr.io/emqx/emqx-builder/${{ matrix.builder }}:${{ matrix.elixir }}-${{ matrix.otp }}-ubuntu20.04"
 
         steps:
         - uses: AutoModality/action-clean@v1
         - uses: actions/download-artifact@v3
           with:
-            name: source-${{ matrix.profile }}
+            name: source-${{ matrix.profile }}-${{ matrix.otp }}
             path: .
         - name: unzip source code
-          env:
-            PROFILE: ${{ matrix.profile }}
           run: unzip -o -q source.zip
           # produces eunit.coverdata
         - name: eunit
@@ -136,9 +123,7 @@ jobs:
             path: source/_build/test/cover
 
     ct_docker:
-        needs:
-          - prepare
-          - prepare_ee
+        needs: [prepare]
         strategy:
           fail-fast: false
           matrix:
@@ -148,11 +133,19 @@ jobs:
               - ubuntu-20.04
             use-self-hosted:
               - ${{ github.repository_owner == 'emqx' }}
+            builder:
+              - 5.0-26
+            otp:
+              - 24.3.4.2-1
+              - 25.1.2-2
+            elixir:
+              - 1.13.4
             exclude:
               - runs-on: ubuntu-20.04
                 use-self-hosted: true
               - runs-on: aws-amd64
                 use-self-hosted: false
+
         runs-on: ${{ matrix.runs-on }}
         defaults:
           run:
@@ -162,13 +155,14 @@ jobs:
         - uses: AutoModality/action-clean@v1
         - uses: actions/download-artifact@v3
           with:
-            name: source-${{ matrix.app[1] }}
+            name: source-${{ matrix.app[1] }}-${{ matrix.otp }}
             path: .
         - name: unzip source code
           run: unzip -q source.zip
         - name: run tests
           working-directory: source
           env:
+            DOCKER_CT_RUNNER_IMAGE: "ghcr.io/emqx/emqx-builder/${{ matrix.builder }}:${{ matrix.elixir }}-${{ matrix.otp }}-ubuntu20.04"
             MONGO_TAG: 5
             MYSQL_TAG: 8
             PGSQL_TAG: 13
@@ -191,13 +185,18 @@ jobs:
             path: source/_build/test/logs
 
     ct:
-        needs:
-          - prepare
-          - prepare_ee
+        needs: [prepare]
         strategy:
           fail-fast: false
           matrix:
             app: ${{ fromJson(needs.prepare.outputs.fast_ct_apps) }}
+            builder:
+              - 5.0-26
+            otp:
+              - 24.3.4.2-1
+              - 25.1.2-2
+            elixir:
+              - 1.13.4
             runs-on:
               - aws-amd64
               - ubuntu-20.04
@@ -210,7 +209,7 @@ jobs:
                 use-self-hosted: false
 
         runs-on: ${{ matrix.runs-on }}
-        container: "ghcr.io/emqx/emqx-builder/5.0-24:1.13.4-24.3.4.2-1-ubuntu20.04"
+        container: "ghcr.io/emqx/emqx-builder/${{ matrix.builder }}:${{ matrix.elixir }}-${{ matrix.otp }}-ubuntu20.04"
         defaults:
           run:
             shell: bash
@@ -219,7 +218,7 @@ jobs:
         - uses: AutoModality/action-clean@v1
         - uses: actions/download-artifact@v3
           with:
-            name: source-${{ matrix.app[1] }}
+            name: source-${{ matrix.app[1] }}-${{ matrix.otp }}
             path: .
         - name: unzip source code
           run: unzip -q source.zip
@@ -249,12 +248,12 @@ jobs:
         - ct
         - ct_docker
       runs-on: ubuntu-20.04
-      container: "ghcr.io/emqx/emqx-builder/5.0-24:1.13.4-24.3.4.2-1-ubuntu20.04"
+      container: "ghcr.io/emqx/emqx-builder/5.0-26:1.13.4-24.3.4.2-1-ubuntu20.04"
       steps:
       - uses: AutoModality/action-clean@v1
       - uses: actions/download-artifact@v3
         with:
-          name: source-emqx-enterprise
+          name: source-emqx-enterprise-24.3.4.2-1
           path: .
       - name: unzip source code
         run: unzip -q source.zip

+ 1 - 1
Makefile

@@ -2,7 +2,7 @@ REBAR = $(CURDIR)/rebar3
 BUILD = $(CURDIR)/build
 SCRIPTS = $(CURDIR)/scripts
 export EMQX_RELUP ?= true
-export EMQX_DEFAULT_BUILDER = ghcr.io/emqx/emqx-builder/5.0-17:1.13.4-24.2.1-1-debian11
+export EMQX_DEFAULT_BUILDER = ghcr.io/emqx/emqx-builder/5.0-26:1.13.4-24.3.4.2-1-debian11
 export EMQX_DEFAULT_RUNNER = debian:11-slim
 export OTP_VSN ?= $(shell $(CURDIR)/scripts/get-otp-vsn.sh)
 export ELIXIR_VSN ?= $(shell $(CURDIR)/scripts/get-elixir-vsn.sh)

+ 1 - 1
deploy/docker/Dockerfile

@@ -1,4 +1,4 @@
-ARG BUILD_FROM=ghcr.io/emqx/emqx-builder/5.0-17:1.13.4-24.2.1-1-debian11
+ARG BUILD_FROM=ghcr.io/emqx/emqx-builder/5.0-26:1.13.4-24.3.4.2-1-debian11
 ARG RUN_FROM=debian:11-slim
 FROM ${BUILD_FROM} AS builder
 

+ 1 - 1
deploy/docker/Dockerfile.alpine

@@ -1,4 +1,4 @@
-ARG BUILD_FROM=ghcr.io/emqx/emqx-builder/5.0-15:1.13.3-24.2.1-1-alpine3.15.1
+ARG BUILD_FROM=ghcr.io/emqx/emqx-builder/5.0-26:1.13.4-24.3.4.2-1-alpine3.15.1
 ARG RUN_FROM=alpine:3.15.1
 FROM ${BUILD_FROM} AS builder
 

+ 2 - 2
rebar.config.erl

@@ -15,8 +15,8 @@ do(Dir, CONFIG) ->
     end.
 
 assert_otp() ->
-    Oldest = 23,
-    Latest = 24,
+    Oldest = 24,
+    Latest = 25,
     OtpRelease = list_to_integer(erlang:system_info(otp_release)),
     case OtpRelease < Oldest orelse OtpRelease > Latest of
         true ->

+ 3 - 3
scripts/buildx.sh

@@ -9,7 +9,7 @@
 
 ## example:
 ## ./scripts/buildx.sh --profile emqx --pkgtype tgz --arch arm64 \
-##     --builder ghcr.io/emqx/emqx-builder/5.0-17:1.13.4-24.2.1-1-debian10
+##     --builder ghcr.io/emqx/emqx-builder/5.0-26:1.13.4-24.3.4.2-1-debian11
 
 set -euo pipefail
 
@@ -22,9 +22,9 @@ help() {
     echo "--elixir:                  Specify if the release should be built with Elixir, "
     echo "                           defaults to 'no'."
     echo "--arch amd64|arm64:        Target arch to build the EMQX package for"
-    echo "--src_dir <SRC_DIR>:       EMQX source ode in this dir, default to PWD"
+    echo "--src_dir <SRC_DIR>:       EMQX source code in this dir, default to PWD"
     echo "--builder <BUILDER>:       Builder image to pull"
-    echo "                           E.g. ghcr.io/emqx/emqx-builder/5.0-17:1.13.4-24.2.1-1-debian10"
+    echo "                           E.g. ghcr.io/emqx/emqx-builder/5.0-26:1.13.4-24.3.4.2-1-debian11"
 }
 
 while [ "$#" -gt 0 ]; do

+ 2 - 2
scripts/ct/run.sh

@@ -66,7 +66,7 @@ if [ "${WHICH_APP}" = 'novalue' ]; then
     exit 1
 fi
 
-ERLANG_CONTAINER='erlang24'
+ERLANG_CONTAINER='erlang'
 DOCKER_CT_ENVS_FILE="${WHICH_APP}/docker-ct"
 
 case "${WHICH_APP}" in
@@ -89,7 +89,7 @@ FILES=( )
 
 for dep in ${CT_DEPS}; do
     case "${dep}" in
-        erlang24)
+        erlang)
             FILES+=( '.ci/docker-compose-file/docker-compose.yaml' )
             ;;
         toxiproxy)

+ 2 - 2
scripts/relup-test/run-relup-lux.sh

@@ -45,8 +45,8 @@ fi
 # From now on, no need for the v|e prefix
 OLD_VSN="${old_vsn#[e|v]}"
 
-OLD_PKG="$(pwd)/_upgrade_base/${profile}-${OLD_VSN}-otp24.2.1-1-ubuntu20.04-amd64.tar.gz"
-CUR_PKG="$(pwd)/_packages/${profile}/${profile}-${cur_vsn}-otp24.2.1-1-ubuntu20.04-amd64.tar.gz"
+OLD_PKG="$(pwd)/_upgrade_base/${profile}-${OLD_VSN}-otp24.3.4.2-1-ubuntu20.04-amd64.tar.gz"
+CUR_PKG="$(pwd)/_packages/${profile}/${profile}-${cur_vsn}-otp24.3.4.2-1-ubuntu20.04-amd64.tar.gz"
 
 if [ ! -f "$OLD_PKG" ]; then
     echo "$OLD_PKG not found"

+ 1 - 1
scripts/relup-test/start-relup-test-cluster.sh

@@ -22,7 +22,7 @@ WEBHOOK="webhook.$NET"
 BENCH="bench.$NET"
 COOKIE='this-is-a-secret'
 ## Erlang image is needed to run webhook server and emqtt-bench
-ERLANG_IMAGE="ghcr.io/emqx/emqx-builder/5.0-17:1.13.4-24.2.1-1-ubuntu20.04"
+ERLANG_IMAGE="ghcr.io/emqx/emqx-builder/5.0-26:1.13.4-24.3.4.2-1-ubuntu20.04"
 # builder has emqtt-bench installed
 BENCH_IMAGE="$ERLANG_IMAGE"