From 9e3c817e5b8d06d44d7c71d31cf75810354c2f4d Mon Sep 17 00:00:00 2001 From: zmstone Date: Wed, 5 Jun 2024 15:45:16 +0200 Subject: [PATCH 1/4] ci: OTP 26 (26.2.5-1) for docker images --- .../docker-compose-kafka.yaml | 2 +- .ci/docker-compose-file/docker-compose.yaml | 2 +- .github/workflows/_pr_entrypoint.yaml | 16 ++++++++-------- .github/workflows/_push-entrypoint.yaml | 19 +++++++++---------- .../build_and_push_docker_images.yaml | 4 ++-- .github/workflows/build_packages.yaml | 4 ++-- .github/workflows/build_packages_cron.yaml | 6 +++--- .github/workflows/build_slim_packages.yaml | 12 ++++++------ .github/workflows/codeql.yaml | 2 +- .github/workflows/performance_test.yaml | 2 +- .github/workflows/run_relup_tests.yaml | 2 +- .tool-versions | 2 +- Makefile | 2 +- build | 4 ++-- deploy/docker/Dockerfile | 2 +- scripts/buildx.sh | 4 ++-- scripts/pr-sanity-checks.sh | 4 ++-- .../relup-test/start-relup-test-cluster.sh | 2 +- 18 files changed, 45 insertions(+), 46 deletions(-) diff --git a/.ci/docker-compose-file/docker-compose-kafka.yaml b/.ci/docker-compose-file/docker-compose-kafka.yaml index 45dfc3fa0..48bd85ac1 100644 --- a/.ci/docker-compose-file/docker-compose-kafka.yaml +++ b/.ci/docker-compose-file/docker-compose-kafka.yaml @@ -18,7 +18,7 @@ services: - /tmp/emqx-ci/emqx-shared-secret:/var/lib/secret kdc: hostname: kdc.emqx.net - image: ghcr.io/emqx/emqx-builder/5.3-5:1.15.7-26.2.1-2-ubuntu22.04 + image: ghcr.io/emqx/emqx-builder/5.3-7:1.15.7-26.2.5-1-ubuntu22.04 container_name: kdc.emqx.net expose: - 88 # kdc diff --git a/.ci/docker-compose-file/docker-compose.yaml b/.ci/docker-compose-file/docker-compose.yaml index ce98a7ced..212ff78ed 100644 --- a/.ci/docker-compose-file/docker-compose.yaml +++ b/.ci/docker-compose-file/docker-compose.yaml @@ -3,7 +3,7 @@ version: '3.9' services: erlang: container_name: erlang - image: ${DOCKER_CT_RUNNER_IMAGE:-ghcr.io/emqx/emqx-builder/5.3-5:1.15.7-26.2.1-2-ubuntu22.04} + image: ${DOCKER_CT_RUNNER_IMAGE:-ghcr.io/emqx/emqx-builder/5.3-7:1.15.7-26.2.5-1-ubuntu22.04} env_file: - credentials.env - conf.env diff --git a/.github/workflows/_pr_entrypoint.yaml b/.github/workflows/_pr_entrypoint.yaml index 3b8b1a0cd..9f480d220 100644 --- a/.github/workflows/_pr_entrypoint.yaml +++ b/.github/workflows/_pr_entrypoint.yaml @@ -17,16 +17,16 @@ env: jobs: sanity-checks: runs-on: ubuntu-22.04 - container: "ghcr.io/emqx/emqx-builder/5.3-5:1.15.7-26.2.1-2-ubuntu22.04" + container: "ghcr.io/emqx/emqx-builder/5.3-7:1.15.7-26.2.5-1-ubuntu22.04" outputs: ct-matrix: ${{ steps.matrix.outputs.ct-matrix }} ct-host: ${{ steps.matrix.outputs.ct-host }} ct-docker: ${{ steps.matrix.outputs.ct-docker }} version-emqx: ${{ steps.matrix.outputs.version-emqx }} version-emqx-enterprise: ${{ steps.matrix.outputs.version-emqx-enterprise }} - builder: "ghcr.io/emqx/emqx-builder/5.3-5:1.15.7-26.2.1-2-ubuntu22.04" - builder_vsn: "5.3-5" - otp_vsn: "26.2.1-2" + builder: "ghcr.io/emqx/emqx-builder/5.3-7:1.15.7-26.2.5-1-ubuntu22.04" + builder_vsn: "5.3-7" + otp_vsn: "26.2.5-1" elixir_vsn: "1.15.7" permissions: @@ -96,13 +96,13 @@ jobs: MATRIX="$(echo "${APPS}" | jq -c ' [ (.[] | select(.profile == "emqx") | . + { - builder: "5.3-5", - otp: "26.2.1-2", + builder: "5.3-7", + otp: "26.2.5-1", elixir: "1.15.7" }), (.[] | select(.profile == "emqx-enterprise") | . + { - builder: "5.3-5", - otp: ["26.2.1-2"][], + builder: "5.3-7", + otp: ["26.2.5-1"][], elixir: "1.15.7" }) ] diff --git a/.github/workflows/_push-entrypoint.yaml b/.github/workflows/_push-entrypoint.yaml index 7033ab989..9c79eb42e 100644 --- a/.github/workflows/_push-entrypoint.yaml +++ b/.github/workflows/_push-entrypoint.yaml @@ -24,7 +24,7 @@ env: jobs: prepare: runs-on: ubuntu-22.04 - container: 'ghcr.io/emqx/emqx-builder/5.3-5:1.15.7-26.2.1-2-ubuntu22.04' + container: 'ghcr.io/emqx/emqx-builder/5.3-7:1.15.7-26.2.5-1-ubuntu22.04' outputs: profile: ${{ steps.parse-git-ref.outputs.profile }} release: ${{ steps.parse-git-ref.outputs.release }} @@ -32,9 +32,9 @@ jobs: ct-matrix: ${{ steps.matrix.outputs.ct-matrix }} ct-host: ${{ steps.matrix.outputs.ct-host }} ct-docker: ${{ steps.matrix.outputs.ct-docker }} - builder: 'ghcr.io/emqx/emqx-builder/5.3-5:1.15.7-26.2.1-2-ubuntu22.04' - builder_vsn: '5.3-5' - otp_vsn: '26.2.1-2' + builder: 'ghcr.io/emqx/emqx-builder/5.3-7:1.15.7-26.2.5-1-ubuntu22.04' + builder_vsn: '5.3-7' + otp_vsn: '26.2.5-1' elixir_vsn: '1.15.7' permissions: @@ -66,13 +66,13 @@ jobs: MATRIX="$(echo "${APPS}" | jq -c ' [ (.[] | select(.profile == "emqx") | . + { - builder: "5.3-5", - otp: "26.2.1-2", + builder: "5.3-7", + otp: "26.2.5-1", elixir: "1.15.7" }), (.[] | select(.profile == "emqx-enterprise") | . + { - builder: "5.3-5", - otp: ["26.2.1-2"][], + builder: "5.3-7", + otp: ["26.2.5-1"][], elixir: "1.15.7" }) ] @@ -107,8 +107,7 @@ jobs: profile: ${{ needs.prepare.outputs.profile }} publish: true latest: ${{ needs.prepare.outputs.latest }} - # TODO: revert this back to needs.prepare.outputs.otp_vsn when OTP 26 bug is fixed - otp_vsn: 25.3.2-2 + otp_vsn: ${{ needs.prepare.outputs.otp_vsn }} elixir_vsn: ${{ needs.prepare.outputs.elixir_vsn }} builder_vsn: ${{ needs.prepare.outputs.builder_vsn }} secrets: inherit diff --git a/.github/workflows/build_and_push_docker_images.yaml b/.github/workflows/build_and_push_docker_images.yaml index 5c879dc11..f05e4e8fb 100644 --- a/.github/workflows/build_and_push_docker_images.yaml +++ b/.github/workflows/build_and_push_docker_images.yaml @@ -53,7 +53,7 @@ on: otp_vsn: required: false type: string - default: '25.3.2-2' + default: '26.2.5-1' elixir_vsn: required: false type: string @@ -61,7 +61,7 @@ on: builder_vsn: required: false type: string - default: '5.3-5' + default: '5.3-7' permissions: contents: read diff --git a/.github/workflows/build_packages.yaml b/.github/workflows/build_packages.yaml index ce8536dde..d64416b9b 100644 --- a/.github/workflows/build_packages.yaml +++ b/.github/workflows/build_packages.yaml @@ -55,7 +55,7 @@ on: otp_vsn: required: false type: string - default: '26.2.1-2' + default: '26.2.5-1' elixir_vsn: required: false type: string @@ -63,7 +63,7 @@ on: builder_vsn: required: false type: string - default: '5.3-5' + default: '5.3-7' permissions: contents: read diff --git a/.github/workflows/build_packages_cron.yaml b/.github/workflows/build_packages_cron.yaml index 9cec4244d..c33ecc12a 100644 --- a/.github/workflows/build_packages_cron.yaml +++ b/.github/workflows/build_packages_cron.yaml @@ -23,8 +23,8 @@ jobs: fail-fast: false matrix: profile: - - ['emqx', 'master', '5.3-5:1.15.7-26.2.1-2'] - - ['emqx', 'release-57', '5.3-5:1.15.7-26.2.1-2'] + - ['emqx', 'master', '5.3-7:1.15.7-26.2.5-1'] + - ['emqx', 'release-57', '5.3-7:1.15.7-26.2.5-1'] os: - ubuntu22.04 - amzn2023 @@ -92,7 +92,7 @@ jobs: branch: - master otp: - - 26.2.1-2 + - 26.2.5-1 os: - macos-12-arm64 diff --git a/.github/workflows/build_slim_packages.yaml b/.github/workflows/build_slim_packages.yaml index 7c8e3aaa4..cb7f53358 100644 --- a/.github/workflows/build_slim_packages.yaml +++ b/.github/workflows/build_slim_packages.yaml @@ -27,15 +27,15 @@ on: builder: required: false type: string - default: 'ghcr.io/emqx/emqx-builder/5.3-5:1.15.7-26.2.1-2-ubuntu22.04' + default: 'ghcr.io/emqx/emqx-builder/5.3-7:1.15.7-26.2.5-1-ubuntu22.04' builder_vsn: required: false type: string - default: '5.3-5' + default: '5.3-7' otp_vsn: required: false type: string - default: '26.2.1-2' + default: '26.2.5-1' elixir_vsn: required: false type: string @@ -54,9 +54,9 @@ jobs: fail-fast: false matrix: profile: - - ["emqx", "26.2.1-2", "ubuntu22.04", "elixir", "x64"] - - ["emqx", "26.2.1-2", "ubuntu22.04", "elixir", "arm64"] - - ["emqx-enterprise", "26.2.1-2", "ubuntu22.04", "erlang", "x64"] + - ["emqx", "26.2.5-1", "ubuntu22.04", "elixir", "x64"] + - ["emqx", "26.2.5-1", "ubuntu22.04", "elixir", "arm64"] + - ["emqx-enterprise", "26.2.5-1", "ubuntu22.04", "erlang", "x64"] container: "ghcr.io/emqx/emqx-builder/${{ inputs.builder_vsn }}:${{ inputs.elixir_vsn }}-${{ matrix.profile[1] }}-${{ matrix.profile[2] }}" diff --git a/.github/workflows/codeql.yaml b/.github/workflows/codeql.yaml index 5bb2d29f0..774f0e344 100644 --- a/.github/workflows/codeql.yaml +++ b/.github/workflows/codeql.yaml @@ -18,7 +18,7 @@ jobs: actions: read security-events: write container: - image: ghcr.io/emqx/emqx-builder/5.3-5:1.15.7-26.2.1-2-ubuntu22.04 + image: ghcr.io/emqx/emqx-builder/5.3-7:1.15.7-26.2.5-1-ubuntu22.04 strategy: fail-fast: false diff --git a/.github/workflows/performance_test.yaml b/.github/workflows/performance_test.yaml index 413ac3728..54645ceb7 100644 --- a/.github/workflows/performance_test.yaml +++ b/.github/workflows/performance_test.yaml @@ -26,7 +26,7 @@ jobs: prepare: runs-on: ubuntu-latest if: github.repository_owner == 'emqx' - container: ghcr.io/emqx/emqx-builder/5.3-5:1.15.7-26.2.1-2-ubuntu20.04 + container: ghcr.io/emqx/emqx-builder/5.3-7:1.15.7-26.2.5-1-ubuntu20.04 outputs: BENCH_ID: ${{ steps.prepare.outputs.BENCH_ID }} PACKAGE_FILE: ${{ steps.package_file.outputs.PACKAGE_FILE }} diff --git a/.github/workflows/run_relup_tests.yaml b/.github/workflows/run_relup_tests.yaml index e0ead42a3..b4214771d 100644 --- a/.github/workflows/run_relup_tests.yaml +++ b/.github/workflows/run_relup_tests.yaml @@ -74,7 +74,7 @@ jobs: steps: - uses: erlef/setup-beam@2f0cc07b4b9bea248ae098aba9e1a8a1de5ec24c # v1.17.5 with: - otp-version: 26.2.1 + otp-version: 26.2.5 - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 with: repository: hawk/lux diff --git a/.tool-versions b/.tool-versions index b29f3ab4f..b9c0e8deb 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1,2 @@ -erlang 26.2.1-2 +erlang 26.2.5-1 elixir 1.15.7-otp-26 diff --git a/Makefile b/Makefile index 48377475e..037a2b0df 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ REBAR = $(CURDIR)/rebar3 BUILD = $(CURDIR)/build SCRIPTS = $(CURDIR)/scripts export EMQX_RELUP ?= true -export EMQX_DEFAULT_BUILDER = ghcr.io/emqx/emqx-builder/5.3-5:1.15.7-26.2.1-2-debian12 +export EMQX_DEFAULT_BUILDER = ghcr.io/emqx/emqx-builder/5.3-7:1.15.7-26.2.5-1-debian12 export EMQX_DEFAULT_RUNNER = public.ecr.aws/debian/debian:12-slim export EMQX_REL_FORM ?= tgz export QUICER_DOWNLOAD_FROM_RELEASE = 1 diff --git a/build b/build index bf5c348f9..b429b7d62 100755 --- a/build +++ b/build @@ -397,9 +397,9 @@ function is_ecr_and_enterprise() { ## Build the default docker image based on debian 12. make_docker() { - local EMQX_BUILDER_VERSION="${EMQX_BUILDER_VERSION:-5.3-5}" + local EMQX_BUILDER_VERSION="${EMQX_BUILDER_VERSION:-5.3-7}" local EMQX_BUILDER_PLATFORM="${EMQX_BUILDER_PLATFORM:-debian12}" - local EMQX_BUILDER_OTP="${EMQX_BUILDER_OTP:-25.3.2-2}" + local EMQX_BUILDER_OTP="${EMQX_BUILDER_OTP:-26.2.5-1}" local EMQX_BUILDER_ELIXIR="${EMQX_BUILDER_ELIXIR:-1.15.7}" local EMQX_BUILDER=${EMQX_BUILDER:-ghcr.io/emqx/emqx-builder/${EMQX_BUILDER_VERSION}:${EMQX_BUILDER_ELIXIR}-${EMQX_BUILDER_OTP}-${EMQX_BUILDER_PLATFORM}} local EMQX_RUNNER="${EMQX_RUNNER:-${EMQX_DEFAULT_RUNNER}}" diff --git a/deploy/docker/Dockerfile b/deploy/docker/Dockerfile index fcff6984e..9eb9b2518 100644 --- a/deploy/docker/Dockerfile +++ b/deploy/docker/Dockerfile @@ -1,4 +1,4 @@ -ARG BUILD_FROM=ghcr.io/emqx/emqx-builder/5.3-5:1.15.7-26.2.1-2-debian12 +ARG BUILD_FROM=ghcr.io/emqx/emqx-builder/5.3-7:1.15.7-26.2.5-1-debian12 ARG RUN_FROM=public.ecr.aws/debian/debian:12-slim ARG SOURCE_TYPE=src # tgz diff --git a/scripts/buildx.sh b/scripts/buildx.sh index 3c358a934..c222127b3 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.3-5:1.15.7-26.2.1-2-debian12 +## --builder ghcr.io/emqx/emqx-builder/5.3-7:1.15.7-26.2.5-1-debian12 set -euo pipefail @@ -24,7 +24,7 @@ help() { echo "--arch amd64|arm64: Target arch to build the EMQX package for" 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.3-5:1.15.7-26.2.1-2-debian12" + echo " E.g. ghcr.io/emqx/emqx-builder/5.3-7:1.15.7-26.2.5-1-debian12" } die() { diff --git a/scripts/pr-sanity-checks.sh b/scripts/pr-sanity-checks.sh index be02a337d..ed796d87a 100755 --- a/scripts/pr-sanity-checks.sh +++ b/scripts/pr-sanity-checks.sh @@ -12,8 +12,8 @@ if ! type "yq" > /dev/null; then exit 1 fi -EMQX_BUILDER_VERSION=${EMQX_BUILDER_VERSION:-5.3-5} -EMQX_BUILDER_OTP=${EMQX_BUILDER_OTP:-26.2.1-2} +EMQX_BUILDER_VERSION=${EMQX_BUILDER_VERSION:-5.3-7} +EMQX_BUILDER_OTP=${EMQX_BUILDER_OTP:-26.2.5-1} EMQX_BUILDER_ELIXIR=${EMQX_BUILDER_ELIXIR:-1.15.7} EMQX_BUILDER_PLATFORM=${EMQX_BUILDER_PLATFORM:-ubuntu22.04} EMQX_BUILDER=${EMQX_BUILDER:-ghcr.io/emqx/emqx-builder/${EMQX_BUILDER_VERSION}:${EMQX_BUILDER_ELIXIR}-${EMQX_BUILDER_OTP}-${EMQX_BUILDER_PLATFORM}} diff --git a/scripts/relup-test/start-relup-test-cluster.sh b/scripts/relup-test/start-relup-test-cluster.sh index 557fbbff9..a972fa210 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.3-5:1.15.7-26.2.1-2-ubuntu22.04" +ERLANG_IMAGE="ghcr.io/emqx/emqx-builder/5.3-7:1.15.7-26.2.5-1-ubuntu22.04" # builder has emqtt-bench installed BENCH_IMAGE="$ERLANG_IMAGE" From e1e5dc231d3e296ddb75d828e6a97fc65aa9ec59 Mon Sep 17 00:00:00 2001 From: Ivan Dyachkov Date: Wed, 5 Jun 2024 16:30:07 +0200 Subject: [PATCH 2/4] build: use generic env variables for otp and elixir when building docker image --- .github/workflows/build_and_push_docker_images.yaml | 8 ++++---- build | 10 +++++----- scripts/pr-sanity-checks.sh | 6 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build_and_push_docker_images.yaml b/.github/workflows/build_and_push_docker_images.yaml index f05e4e8fb..6c49236d4 100644 --- a/.github/workflows/build_and_push_docker_images.yaml +++ b/.github/workflows/build_and_push_docker_images.yaml @@ -169,8 +169,8 @@ jobs: EMQX_DOCKERFILE: 'deploy/docker/Dockerfile' PKG_VSN: ${{ needs.build.outputs.PKG_VSN }} EMQX_BUILDER_VERSION: ${{ inputs.builder_vsn }} - EMQX_BUILDER_OTP: ${{ inputs.otp_vsn }} - EMQX_BUILDER_ELIXIR: ${{ inputs.elixir_vsn }} + OTP_VSN: ${{ inputs.otp_vsn }} + ELIXIR_VSN: ${{ inputs.elixir_vsn }} EMQX_SOURCE_TYPE: tgz run: | ./build ${PROFILE} docker @@ -218,8 +218,8 @@ jobs: EMQX_DOCKERFILE: 'deploy/docker/Dockerfile' PKG_VSN: ${{ needs.build.outputs.PKG_VSN }} EMQX_BUILDER_VERSION: ${{ inputs.builder_vsn }} - EMQX_BUILDER_OTP: ${{ inputs.otp_vsn }} - EMQX_BUILDER_ELIXIR: ${{ inputs.elixir_vsn }} + OTP_VSN: ${{ inputs.otp_vsn }} + ELIXIR_VSN: ${{ inputs.elixir_vsn }} EMQX_SOURCE_TYPE: tgz run: | ./build ${PROFILE} docker diff --git a/build b/build index b429b7d62..bcea44a30 100755 --- a/build +++ b/build @@ -399,9 +399,9 @@ function is_ecr_and_enterprise() { make_docker() { local EMQX_BUILDER_VERSION="${EMQX_BUILDER_VERSION:-5.3-7}" local EMQX_BUILDER_PLATFORM="${EMQX_BUILDER_PLATFORM:-debian12}" - local EMQX_BUILDER_OTP="${EMQX_BUILDER_OTP:-26.2.5-1}" - local EMQX_BUILDER_ELIXIR="${EMQX_BUILDER_ELIXIR:-1.15.7}" - local EMQX_BUILDER=${EMQX_BUILDER:-ghcr.io/emqx/emqx-builder/${EMQX_BUILDER_VERSION}:${EMQX_BUILDER_ELIXIR}-${EMQX_BUILDER_OTP}-${EMQX_BUILDER_PLATFORM}} + local OTP_VSN="${OTP_VSN:-26.2.5-1}" + local ELIXIR_VSN="${ELIXIR_VSN:-1.15.7}" + local EMQX_BUILDER=${EMQX_BUILDER:-ghcr.io/emqx/emqx-builder/${EMQX_BUILDER_VERSION}:${ELIXIR_VSN}-${OTP_VSN}-${EMQX_BUILDER_PLATFORM}} local EMQX_RUNNER="${EMQX_RUNNER:-${EMQX_DEFAULT_RUNNER}}" local EMQX_DOCKERFILE="${EMQX_DOCKERFILE:-deploy/docker/Dockerfile}" local EMQX_SOURCE_TYPE="${EMQX_SOURCE_TYPE:-src}" @@ -465,7 +465,7 @@ make_docker() { --label org.opencontainers.image.description="${PRODUCT_DESCRIPTION}" \ --label org.opencontainers.image.documentation="${DOCUMENTATION_URL}" \ --label org.opencontainers.image.licenses="${LICENSE}" \ - --label org.opencontainers.image.otp.version="${EMQX_BUILDER_OTP}" \ + --label org.opencontainers.image.otp.version="${OTP_VSN}" \ --pull ) :> ./.emqx_docker_image_tags @@ -477,7 +477,7 @@ make_docker() { DOCKER_BUILDX_ARGS+=(--no-cache) fi if [ "${SUFFIX}" = '-elixir' ]; then - DOCKER_BUILDX_ARGS+=(--label org.opencontainers.image.elixir.version="${EMQX_BUILDER_ELIXIR}") + DOCKER_BUILDX_ARGS+=(--label org.opencontainers.image.elixir.version="${ELIXIR_VSN}") fi if [ "${DOCKER_LATEST:-false}" = true ]; then for r in "${DOCKER_REGISTRIES[@]}"; do diff --git a/scripts/pr-sanity-checks.sh b/scripts/pr-sanity-checks.sh index ed796d87a..ad8fbaaa4 100755 --- a/scripts/pr-sanity-checks.sh +++ b/scripts/pr-sanity-checks.sh @@ -13,10 +13,10 @@ if ! type "yq" > /dev/null; then fi EMQX_BUILDER_VERSION=${EMQX_BUILDER_VERSION:-5.3-7} -EMQX_BUILDER_OTP=${EMQX_BUILDER_OTP:-26.2.5-1} -EMQX_BUILDER_ELIXIR=${EMQX_BUILDER_ELIXIR:-1.15.7} +OTP_VSN=${OTP_VSN:-26.2.5-1} +ELIXIR_VSN=${ELIXIR_VSN:-1.15.7} EMQX_BUILDER_PLATFORM=${EMQX_BUILDER_PLATFORM:-ubuntu22.04} -EMQX_BUILDER=${EMQX_BUILDER:-ghcr.io/emqx/emqx-builder/${EMQX_BUILDER_VERSION}:${EMQX_BUILDER_ELIXIR}-${EMQX_BUILDER_OTP}-${EMQX_BUILDER_PLATFORM}} +EMQX_BUILDER=${EMQX_BUILDER:-ghcr.io/emqx/emqx-builder/${EMQX_BUILDER_VERSION}:${ELIXIR_VSN}-${OTP_VSN}-${EMQX_BUILDER_PLATFORM}} commands=$(yq ".jobs.sanity-checks.steps[].run" .github/workflows/_pr_entrypoint.yaml | grep -v null) From c7f585cc218d4583d68cac9a930b2982af1e2c31 Mon Sep 17 00:00:00 2001 From: zmstone Date: Wed, 5 Jun 2024 21:54:17 +0200 Subject: [PATCH 3/4] fix(bin/emqx): ensure -noinput is prior to -noshell iex seems to depend on this order, otherwise it terminiates right after boot --- bin/emqx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/emqx b/bin/emqx index 1db57d7e8..3bd86db0c 100755 --- a/bin/emqx +++ b/bin/emqx @@ -1199,7 +1199,7 @@ case "${COMMAND}" in esac case "$COMMAND" in foreground) - FOREGROUNDOPTIONS="-enable-feature maybe_expr -noshell -noinput +Bd" + FOREGROUNDOPTIONS="-enable-feature maybe_expr -noinput -noshell +Bd" ;; *) FOREGROUNDOPTIONS='-enable-feature maybe_expr' From c41be7ee22b310e46786116e20088b84bb528a3e Mon Sep 17 00:00:00 2001 From: zmstone Date: Wed, 5 Jun 2024 23:37:21 +0200 Subject: [PATCH 4/4] chore: fix dialyzer warning --- .../emqx_bridge_sqlserver/src/emqx_bridge_sqlserver.app.src | 2 +- .../src/emqx_bridge_sqlserver_connector.erl | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/emqx_bridge_sqlserver/src/emqx_bridge_sqlserver.app.src b/apps/emqx_bridge_sqlserver/src/emqx_bridge_sqlserver.app.src index 0f977e81e..4b3135f5f 100644 --- a/apps/emqx_bridge_sqlserver/src/emqx_bridge_sqlserver.app.src +++ b/apps/emqx_bridge_sqlserver/src/emqx_bridge_sqlserver.app.src @@ -1,6 +1,6 @@ {application, emqx_bridge_sqlserver, [ {description, "EMQX Enterprise SQL Server Bridge"}, - {vsn, "0.2.0"}, + {vsn, "0.2.1"}, {registered, []}, {applications, [kernel, stdlib, emqx_resource, odbc]}, {env, [ diff --git a/apps/emqx_bridge_sqlserver/src/emqx_bridge_sqlserver_connector.erl b/apps/emqx_bridge_sqlserver/src/emqx_bridge_sqlserver_connector.erl index 726d2656a..603ef18d0 100644 --- a/apps/emqx_bridge_sqlserver/src/emqx_bridge_sqlserver_connector.erl +++ b/apps/emqx_bridge_sqlserver/src/emqx_bridge_sqlserver_connector.erl @@ -78,7 +78,7 @@ %% https://www.erlang.org/doc/man/odbc.html %% as returned by connect/2 --type connection_reference() :: pid(). +-type connection_reference() :: odbc:connection_reference(). -type time_out() :: milliseconds() | infinity. -type sql() :: string() | binary(). -type milliseconds() :: pos_integer(). @@ -478,7 +478,7 @@ worker_do_insert( {error, {unrecoverable_error, {invalid_request, Reason}}} end. --spec execute(pid(), sql()) -> +-spec execute(connection_reference(), sql()) -> updated_tuple() | selected_tuple() | [updated_tuple()] @@ -487,7 +487,7 @@ worker_do_insert( execute(Conn, SQL) -> odbc:sql_query(Conn, str(SQL)). --spec execute(pid(), sql(), time_out()) -> +-spec execute(connection_reference(), sql(), time_out()) -> updated_tuple() | selected_tuple() | [updated_tuple()]