From 2e1cdd039e443b3b6662775f0efa1bb01bdf5d5a Mon Sep 17 00:00:00 2001 From: Andrew Mayorov Date: Thu, 8 Dec 2022 14:21:52 +0300 Subject: [PATCH] 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 --- .ci/docker-compose-file/Makefile.local | 2 +- .../docker-compose-kafka.yaml | 2 +- .ci/docker-compose-file/docker-compose.yaml | 6 +- .github/actions/package-macos/action.yaml | 2 +- .../build_and_push_docker_images.yaml | 18 +-- .github/workflows/build_packages.yaml | 13 ++- .github/workflows/build_slim_packages.yaml | 11 +- .github/workflows/check_deps_integrity.yaml | 2 +- .github/workflows/code_style_check.yaml | 2 +- .github/workflows/elixir_apps_check.yaml | 2 +- .github/workflows/elixir_deps_check.yaml | 2 +- .github/workflows/elixir_release.yml | 3 +- .github/workflows/run_emqx_app_tests.yaml | 5 +- .github/workflows/run_fvt_tests.yaml | 14 ++- .github/workflows/run_jmeter_tests.yaml | 14 +-- .github/workflows/run_relup_tests.yaml | 8 +- .github/workflows/run_test_cases.yaml | 105 +++++++++--------- Makefile | 2 +- deploy/docker/Dockerfile | 2 +- deploy/docker/Dockerfile.alpine | 2 +- rebar.config.erl | 4 +- scripts/buildx.sh | 6 +- scripts/ct/run.sh | 4 +- scripts/relup-test/run-relup-lux.sh | 4 +- .../relup-test/start-relup-test-cluster.sh | 2 +- 25 files changed, 127 insertions(+), 110 deletions(-) diff --git a/.ci/docker-compose-file/Makefile.local b/.ci/docker-compose-file/Makefile.local index d11ab64a6..ff4f348b0 100644 --- a/.ci/docker-compose-file/Makefile.local +++ b/.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 diff --git a/.ci/docker-compose-file/docker-compose-kafka.yaml b/.ci/docker-compose-file/docker-compose-kafka.yaml index ba0161293..716c4c709 100644 --- a/.ci/docker-compose-file/docker-compose-kafka.yaml +++ b/.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: diff --git a/.ci/docker-compose-file/docker-compose.yaml b/.ci/docker-compose-file/docker-compose.yaml index 4a5ef7070..b55b3196f 100644 --- a/.ci/docker-compose-file/docker-compose.yaml +++ b/.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: diff --git a/.github/actions/package-macos/action.yaml b/.github/actions/package-macos/action.yaml index 37284e8b6..acd4975e6 100644 --- a/.github/actions/package-macos/action.yaml +++ b/.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: diff --git a/.github/workflows/build_and_push_docker_images.yaml b/.github/workflows/build_and_push_docker_images.yaml index 2893489e4..76238c75f 100644 --- a/.github/workflows/build_and_push_docker_images.yaml +++ b/.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: diff --git a/.github/workflows/build_packages.yaml b/.github/workflows/build_packages.yaml index 80a8f1468..2bb4fb42e 100644 --- a/.github/workflows/build_packages.yaml +++ b/.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: diff --git a/.github/workflows/build_slim_packages.yaml b/.github/workflows/build_slim_packages.yaml index 12b17535a..ebaa17abf 100644 --- a/.github/workflows/build_slim_packages.yaml +++ b/.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 diff --git a/.github/workflows/check_deps_integrity.yaml b/.github/workflows/check_deps_integrity.yaml index 2578e078f..59fc01d74 100644 --- a/.github/workflows/check_deps_integrity.yaml +++ b/.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 diff --git a/.github/workflows/code_style_check.yaml b/.github/workflows/code_style_check.yaml index 910bb8835..6ab8ea8b6 100644 --- a/.github/workflows/code_style_check.yaml +++ b/.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: diff --git a/.github/workflows/elixir_apps_check.yaml b/.github/workflows/elixir_apps_check.yaml index e4b93cf80..62000f421 100644 --- a/.github/workflows/elixir_apps_check.yaml +++ b/.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 diff --git a/.github/workflows/elixir_deps_check.yaml b/.github/workflows/elixir_deps_check.yaml index 9f1d6f3e4..5e64d69c4 100644 --- a/.github/workflows/elixir_deps_check.yaml +++ b/.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 diff --git a/.github/workflows/elixir_release.yml b/.github/workflows/elixir_release.yml index 0ac1e9155..f53051d1d 100644 --- a/.github/workflows/elixir_release.yml +++ b/.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 diff --git a/.github/workflows/run_emqx_app_tests.yaml b/.github/workflows/run_emqx_app_tests.yaml index 71b016761..ddbb14609 100644 --- a/.github/workflows/run_emqx_app_tests.yaml +++ b/.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: diff --git a/.github/workflows/run_fvt_tests.yaml b/.github/workflows/run_fvt_tests.yaml index 8870b8257..9e51b7142 100644 --- a/.github/workflows/run_fvt_tests.yaml +++ b/.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 diff --git a/.github/workflows/run_jmeter_tests.yaml b/.github/workflows/run_jmeter_tests.yaml index f67730b30..283d7c014 100644 --- a/.github/workflows/run_jmeter_tests.yaml +++ b/.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: diff --git a/.github/workflows/run_relup_tests.yaml b/.github/workflows/run_relup_tests.yaml index ac2da6f85..cb1540fdd 100644 --- a/.github/workflows/run_relup_tests.yaml +++ b/.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 diff --git a/.github/workflows/run_test_cases.yaml b/.github/workflows/run_test_cases.yaml index a21f130d4..23adbc5bb 100644 --- a/.github/workflows/run_test_cases.yaml +++ b/.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" + 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 + PROFILE: ${{ matrix.profile }} #DIAGNOSTIC: 1 run: | make ensure-rebar3 # fetch all deps and compile - make emqx + make ${{ matrix.profile }} 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 - - name: get_all_deps - working-directory: source - env: - PROFILE: emqx-enterprise - #DIAGNOSTIC: 1 - run: | - make ensure-rebar3 - # fetch all deps and compile - make emqx-enterprise - 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 diff --git a/Makefile b/Makefile index d6d913a11..503889acb 100644 --- a/Makefile +++ b/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) diff --git a/deploy/docker/Dockerfile b/deploy/docker/Dockerfile index 51b4dbd0c..4a00c68fb 100644 --- a/deploy/docker/Dockerfile +++ b/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 diff --git a/deploy/docker/Dockerfile.alpine b/deploy/docker/Dockerfile.alpine index dc16afc54..0f72be9ab 100644 --- a/deploy/docker/Dockerfile.alpine +++ b/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 diff --git a/rebar.config.erl b/rebar.config.erl index 8c8f87fa8..0b1ca97eb 100644 --- a/rebar.config.erl +++ b/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 -> diff --git a/scripts/buildx.sh b/scripts/buildx.sh index 96e48d9eb..ca7f812f6 100755 --- a/scripts/buildx.sh +++ b/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 : EMQX source ode in this dir, default to PWD" + echo "--src_dir : EMQX source code in this dir, default to PWD" echo "--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 diff --git a/scripts/ct/run.sh b/scripts/ct/run.sh index ae779c572..d86ee4f6a 100755 --- a/scripts/ct/run.sh +++ b/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) diff --git a/scripts/relup-test/run-relup-lux.sh b/scripts/relup-test/run-relup-lux.sh index d446ee29f..cf30db850 100755 --- a/scripts/relup-test/run-relup-lux.sh +++ b/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" diff --git a/scripts/relup-test/start-relup-test-cluster.sh b/scripts/relup-test/start-relup-test-cluster.sh index b66894c95..c9e3edbd9 100755 --- a/scripts/relup-test/start-relup-test-cluster.sh +++ b/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"