From 2c3107feb492e260c1ab503bb2eefc1abe8136ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joachim=20Schl=C3=B6ffel?= Date: Wed, 8 Jul 2026 14:13:19 +0200 Subject: [PATCH] Add LavinMQ Alpine package --- .gitea/workflows/build.yml | 2 - README.md | 11 ++- .../alpine/blueprint/scripts/test-install.sh | 2 +- .../local/greptimedb/scripts/test-install.sh | 2 +- packaging/alpine/local/lavinmq/APKBUILD | 71 ++++++++++++++++++ packaging/alpine/local/lavinmq/README.md | 72 ++++++++++++++++++ packaging/alpine/local/lavinmq/lavinmq.confd | 4 + packaging/alpine/local/lavinmq/lavinmq.initd | 26 +++++++ .../alpine/local/lavinmq/lavinmq.pre-install | 7 ++ .../local/lavinmq/scripts/runtime-test.sh | 20 +++++ .../local/lavinmq/scripts/test-install.sh | 74 +++++++++++++++++++ .../local/seaweedfs/scripts/test-install.sh | 2 +- scripts/apk/Dockerfile | 2 +- scripts/apk/build.sh | 2 +- scripts/apk/ci-smoke.sh | 16 +++- scripts/apk/publish-gitea.sh | 2 +- scripts/apk/smoke.sh | 21 +++++- scripts/apk/test-shell.sh | 21 ++++-- 18 files changed, 333 insertions(+), 24 deletions(-) create mode 100644 packaging/alpine/local/lavinmq/APKBUILD create mode 100644 packaging/alpine/local/lavinmq/README.md create mode 100644 packaging/alpine/local/lavinmq/lavinmq.confd create mode 100755 packaging/alpine/local/lavinmq/lavinmq.initd create mode 100755 packaging/alpine/local/lavinmq/lavinmq.pre-install create mode 100755 packaging/alpine/local/lavinmq/scripts/runtime-test.sh create mode 100755 packaging/alpine/local/lavinmq/scripts/test-install.sh diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index cb35ca7..f0440a8 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -16,8 +16,6 @@ jobs: strategy: matrix: include: - - alpine_version: "3.23" - alpine_registry_branch: "v3.23" - alpine_version: "3.24" alpine_registry_branch: "v3.24" container: diff --git a/README.md b/README.md index 7dcdb15..fc09227 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,6 @@ Alpine stable packaging for internal packages. ```text -https://code.factoring.digital/api/packages/public/alpine/v3.23/alpine-packages https://code.factoring.digital/api/packages/public/alpine/v3.24/alpine-packages ``` @@ -11,6 +10,7 @@ https://code.factoring.digital/api/packages/public/alpine/v3.24/alpine-packages - [SeaweedFS](packaging/alpine/local/seaweedfs/README.md): `seaweedfs` - [GreptimeDB](packaging/alpine/local/greptimedb/README.md): `greptimedb` +- [LavinMQ](packaging/alpine/local/lavinmq/README.md): `lavinmq` ## Use In Production @@ -53,7 +53,8 @@ Currently packaged: ```text seaweedfs SeaweedFS 4.31 release binary and OpenRC role splits -greptimedb GreptimeDB 1.0.2 built from source for x86_64 +greptimedb GreptimeDB 1.1.2 built from source for x86_64 +lavinmq LavinMQ 2.9.1 built from source for x86_64 ``` Local build output is written under: @@ -111,6 +112,8 @@ ALPINE_PACKAGE=seaweedfs mise run apk:test-install ALPINE_PACKAGE=greptimedb mise run apk:checksum ALPINE_PACKAGE=greptimedb mise run apk:build ALPINE_PACKAGE=greptimedb SKIP_BUILD=1 mise run apk:test-install +ALPINE_PACKAGE=lavinmq mise run apk:build +ALPINE_PACKAGE=lavinmq SKIP_BUILD=1 mise run apk:test-install ``` Override Docker cache scope: @@ -189,8 +192,8 @@ mise run apk:checksum ### Gitea Workflow -`.gitea/workflows/build.yml` builds and publishes `v3.23` and `v3.24`. -Pull requests build only. +`.gitea/workflows/build.yml` builds and publishes `v3.24`. Pull requests +build only. Repository variables: diff --git a/packaging/alpine/blueprint/scripts/test-install.sh b/packaging/alpine/blueprint/scripts/test-install.sh index 8c768d9..2b2f3a1 100755 --- a/packaging/alpine/blueprint/scripts/test-install.sh +++ b/packaging/alpine/blueprint/scripts/test-install.sh @@ -3,7 +3,7 @@ set -euo pipefail repo_root="${REPO_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../../../../.." && pwd)}" package_name="${PACKAGE_NAME:-$(basename "$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)")}" -alpine_version="${ALPINE_VERSION:-3.23}" +alpine_version="${ALPINE_VERSION:-3.24}" arch="${ALPINE_ARCH:-x86_64}" case "${arch}" in diff --git a/packaging/alpine/local/greptimedb/scripts/test-install.sh b/packaging/alpine/local/greptimedb/scripts/test-install.sh index d5e1f24..b02a798 100755 --- a/packaging/alpine/local/greptimedb/scripts/test-install.sh +++ b/packaging/alpine/local/greptimedb/scripts/test-install.sh @@ -3,7 +3,7 @@ set -euo pipefail repo_root="${REPO_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../../../../.." && pwd)}" package_name="${PACKAGE_NAME:-greptimedb}" -alpine_version="${ALPINE_VERSION:-3.23}" +alpine_version="${ALPINE_VERSION:-3.24}" arch="${ALPINE_ARCH:-x86_64}" repository_url="${ALPINE_REPOSITORY_URL:-}" repository_key_url="${ALPINE_REPOSITORY_KEY_URL:-}" diff --git a/packaging/alpine/local/lavinmq/APKBUILD b/packaging/alpine/local/lavinmq/APKBUILD new file mode 100644 index 0000000..1f50a35 --- /dev/null +++ b/packaging/alpine/local/lavinmq/APKBUILD @@ -0,0 +1,71 @@ +# Maintainer: Joachim Schlöffel +pkgname=lavinmq +pkgver=2.9.1 +pkgrel=0 +pkgdesc="High-performance AMQP and MQTT message queue server" +url="https://github.com/cloudamqp/lavinmq" +arch="x86_64" +license="Apache-2.0" +depends="ca-certificates /bin/sh" +makedepends=" + crystal>=1.20.1 + curl + gc-dev + help2man + libevent-dev + lz4-dev + make + openssl + openssl-dev + pcre2-dev + shards + tar + yaml-dev + " +install="$pkgname.pre-install" +subpackages=" + $pkgname-doc + $pkgname-openrc:_openrc:noarch + " +options="net" +source=" + $pkgname-$pkgver.tar.gz::https://github.com/cloudamqp/lavinmq/archive/refs/tags/v$pkgver.tar.gz + lavinmq.confd + lavinmq.initd + " + +export CRYSTAL_CACHE_DIR="${CRYSTAL_CACHE_DIR:-$srcdir/crystal-cache}" +export SHARDS_CACHE_PATH="${SHARDS_CACHE_PATH:-$srcdir/shards-cache}" + +build() { + make + make man +} + +check() { + bin/lavinmq -v + bin/lavinmqctl --version + bin/lavinmqperf --version +} + +package() { + make DESTDIR="$pkgdir" install + rm -r "$pkgdir"/lib/systemd "$pkgdir"/usr/lib/sysusers.d + rmdir "$pkgdir"/lib "$pkgdir"/usr/lib +} + +_openrc() { + pkgdesc="$pkgdesc (OpenRC service)" + depends="$pkgname=$pkgver-r$pkgrel openrc" + + install -Dm755 "$srcdir"/lavinmq.initd \ + "$subpkgdir"/etc/init.d/lavinmq + install -Dm644 "$srcdir"/lavinmq.confd \ + "$subpkgdir"/etc/conf.d/lavinmq +} + +sha512sums=" +5f88de7a1e093b1f6e2ead5c340140bd489a99ca8adfa9f40052148490d0bdf8ff1e2dad67727e9799ad1f942755df01525e63d24b0901684a743f43c42110b9 lavinmq-2.9.1.tar.gz +62a609d50f28db960098c4c84ce4f1dad78413366a9a9aca18fe321114d687be3bf7b71924d4ace69bd74383c5ac40d2ee09ae0eef9c1bfe653b97448e42e110 lavinmq.confd +76fbfa1b14c58631e92f817e689584239eb644e68460c091decdcabe7661aeb210f9128545262add2fb07eeee155c8734f1e612fc59ebb897d3c67e95a56350f lavinmq.initd +" diff --git a/packaging/alpine/local/lavinmq/README.md b/packaging/alpine/local/lavinmq/README.md new file mode 100644 index 0000000..d121673 --- /dev/null +++ b/packaging/alpine/local/lavinmq/README.md @@ -0,0 +1,72 @@ +# LavinMQ Alpine Package + +Builds LavinMQ from the upstream source release for `x86_64` and packages the +OpenRC service plus `/etc/lavinmq` defaults. + +Build command: + +```sh +make +``` + +LavinMQ 2.9.1 requires Crystal 1.20.1 or newer, so build with Alpine 3.24 or +newer. + +## Runtime Layout + +Installs: + +- `lavinmq` +- `lavinmqctl` +- `lavinmqperf` +- `/etc/lavinmq/lavinmq.ini` +- `/var/lib/lavinmq` + +Default ports: + +- `5672`: AMQP +- `15672`: management UI + +## OpenRC Usage + +```sh +apk add lavinmq lavinmq-doc lavinmq-openrc +rc-update add lavinmq default +rc-service lavinmq start +``` + +Wrapper settings in `/etc/conf.d/lavinmq`: + +- `LAVINMQ_CONFIG`: config file path passed with `--config` +- `LAVINMQ_DATA_DIR`: data directory passed with `-D` +- `LAVINMQ_OPTS`: extra LavinMQ arguments appended after package defaults + +## Package Commands + +Refresh checksums: + +```sh +ALPINE_PACKAGE=lavinmq mise run apk:checksum +``` + +Build: + +```sh +ALPINE_PACKAGE=lavinmq mise run apk:build +``` + +Install-test local build: + +```sh +ALPINE_PACKAGE=lavinmq SKIP_BUILD=1 mise run apk:test-install +``` + +Install-test published repository: + +```sh +ALPINE_PACKAGE=lavinmq \ +SKIP_BUILD=1 \ +ALPINE_REPOSITORY_URL=https://code.factoring.digital/api/packages/public/alpine/v3.24/alpine-packages \ +ALPINE_REPOSITORY_KEY_URL=https://code.factoring.digital/api/packages/public/alpine/key \ +mise run apk:test-install +``` diff --git a/packaging/alpine/local/lavinmq/lavinmq.confd b/packaging/alpine/local/lavinmq/lavinmq.confd new file mode 100644 index 0000000..c4e76cf --- /dev/null +++ b/packaging/alpine/local/lavinmq/lavinmq.confd @@ -0,0 +1,4 @@ +# Defaults for LavinMQ. +LAVINMQ_CONFIG="/etc/lavinmq/lavinmq.ini" +LAVINMQ_DATA_DIR="/var/lib/lavinmq" +LAVINMQ_OPTS="" diff --git a/packaging/alpine/local/lavinmq/lavinmq.initd b/packaging/alpine/local/lavinmq/lavinmq.initd new file mode 100755 index 0000000..c78f96a --- /dev/null +++ b/packaging/alpine/local/lavinmq/lavinmq.initd @@ -0,0 +1,26 @@ +#!/sbin/openrc-run + +description="LavinMQ message queue service" + +command="/usr/bin/lavinmq" +command_user="${LAVINMQ_USER:-lavinmq}:${LAVINMQ_GROUP:-lavinmq}" +command_background="yes" +pidfile="/run/lavinmq/lavinmq.pid" +output_log="${LAVINMQ_LOG:-/var/log/lavinmq/lavinmq.log}" +error_log="${LAVINMQ_ERRLOG:-/var/log/lavinmq/lavinmq.log}" + +config_file="${LAVINMQ_CONFIG:-/etc/lavinmq/lavinmq.ini}" +data_dir="${LAVINMQ_DATA_DIR:-/var/lib/lavinmq}" +command_args="-D ${data_dir} --config ${config_file} ${LAVINMQ_OPTS:-}" + +depend() { + need net +} + +start_pre() { + checkpath -d -m 0755 -o "${LAVINMQ_USER:-lavinmq}:${LAVINMQ_GROUP:-lavinmq}" \ + /run/lavinmq \ + /var/log/lavinmq + checkpath -d -m 0750 -o "${LAVINMQ_USER:-lavinmq}:${LAVINMQ_GROUP:-lavinmq}" \ + "$data_dir" +} diff --git a/packaging/alpine/local/lavinmq/lavinmq.pre-install b/packaging/alpine/local/lavinmq/lavinmq.pre-install new file mode 100755 index 0000000..e2cf3c6 --- /dev/null +++ b/packaging/alpine/local/lavinmq/lavinmq.pre-install @@ -0,0 +1,7 @@ +#!/bin/sh + +addgroup -S lavinmq 2>/dev/null +adduser -S -D -H -h /var/lib/lavinmq -s /sbin/nologin \ + -G lavinmq -g lavinmq lavinmq 2>/dev/null + +exit 0 diff --git a/packaging/alpine/local/lavinmq/scripts/runtime-test.sh b/packaging/alpine/local/lavinmq/scripts/runtime-test.sh new file mode 100755 index 0000000..9626eb8 --- /dev/null +++ b/packaging/alpine/local/lavinmq/scripts/runtime-test.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +set -euo pipefail + +apk add lavinmq lavinmq-doc lavinmq-openrc + +test -x /usr/bin/lavinmq +test -x /usr/bin/lavinmqctl +test -x /usr/bin/lavinmqperf +test -f /etc/lavinmq/lavinmq.ini +test -d /var/lib/lavinmq +test -f /etc/conf.d/lavinmq +test -f /etc/init.d/lavinmq +test -f /usr/share/doc/lavinmq/README.md + +lavinmq -v +lavinmqctl --version +lavinmqperf --version + +rc-update add lavinmq default || true +test -L /etc/runlevels/default/lavinmq diff --git a/packaging/alpine/local/lavinmq/scripts/test-install.sh b/packaging/alpine/local/lavinmq/scripts/test-install.sh new file mode 100755 index 0000000..a29fff6 --- /dev/null +++ b/packaging/alpine/local/lavinmq/scripts/test-install.sh @@ -0,0 +1,74 @@ +#!/usr/bin/env bash +set -euo pipefail + +repo_root="${REPO_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../../../../.." && pwd)}" +package_name="${PACKAGE_NAME:-lavinmq}" +alpine_version="${ALPINE_VERSION:-3.24}" +arch="${ALPINE_ARCH:-x86_64}" +repository_url="${ALPINE_REPOSITORY_URL:-}" +repository_key_url="${ALPINE_REPOSITORY_KEY_URL:-}" + +case "${arch}" in + x86_64) + platform="${ALPINE_TEST_PLATFORM:-linux/amd64}" + ;; + aarch64) + platform="${ALPINE_TEST_PLATFORM:-linux/arm64}" + ;; + *) + printf 'unsupported Alpine architecture: %s\n' "${arch}" >&2 + exit 2 + ;; +esac + +if [[ -z "${repository_url}" && "${SKIP_BUILD:-0}" != "1" ]]; then + ALPINE_PACKAGE="${package_name}" "${repo_root}/scripts/apk/build.sh" build "${arch}" +fi + +if [[ -z "${repository_url}" && ! -d "${repo_root}/packages/local/${arch}" ]]; then + printf 'missing local repository: packages/local/%s\n' "${arch}" >&2 + printf 'run: ALPINE_PACKAGE=%s mise run apk:build\n' "${package_name}" >&2 + exit 1 +fi + +docker run --rm --platform "${platform}" \ + -e "ALPINE_ARCH=${arch}" \ + -e "PACKAGE_NAME=${package_name}" \ + -e "ALPINE_REPOSITORY_URL=${repository_url}" \ + -e "ALPINE_REPOSITORY_KEY_URL=${repository_key_url}" \ + -v "${repo_root}/packages/local:/repo:ro" \ + "alpine:${alpine_version}" \ + sh -lc ' + set -e + + if [ -n "${ALPINE_REPOSITORY_URL}" ]; then + if [ -n "${ALPINE_REPOSITORY_KEY_URL}" ]; then + apk add --no-cache curl >/dev/null + cd /etc/apk/keys + curl -fsSLOJ "${ALPINE_REPOSITORY_KEY_URL}" + fi + printf "%s\n" "${ALPINE_REPOSITORY_URL}" >> /etc/apk/repositories + else + cp "/repo/${ALPINE_ARCH}"/*.rsa.pub /etc/apk/keys/ + printf "%s\n" /repo >> /etc/apk/repositories + fi + apk update + apk add "${PACKAGE_NAME}" "${PACKAGE_NAME}-doc" "${PACKAGE_NAME}-openrc" + + test -x /usr/bin/lavinmq + test -x /usr/bin/lavinmqctl + test -x /usr/bin/lavinmqperf + test -f /etc/lavinmq/lavinmq.ini + test -d /var/lib/lavinmq + test -f /etc/conf.d/lavinmq + test -f /etc/init.d/lavinmq + test -f /usr/share/doc/lavinmq/README.md + test -f /usr/share/doc/lavinmq/changelog + + lavinmq -v + lavinmqctl --version + lavinmqperf --version + + rc-update add lavinmq default + test -L /etc/runlevels/default/lavinmq + ' diff --git a/packaging/alpine/local/seaweedfs/scripts/test-install.sh b/packaging/alpine/local/seaweedfs/scripts/test-install.sh index 2aa2a20..4d5ce5d 100755 --- a/packaging/alpine/local/seaweedfs/scripts/test-install.sh +++ b/packaging/alpine/local/seaweedfs/scripts/test-install.sh @@ -3,7 +3,7 @@ set -euo pipefail repo_root="${REPO_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../../../../.." && pwd)}" package_name="${PACKAGE_NAME:-seaweedfs}" -alpine_version="${ALPINE_VERSION:-3.23}" +alpine_version="${ALPINE_VERSION:-3.24}" arch="${ALPINE_ARCH:-x86_64}" case "${arch}" in diff --git a/scripts/apk/Dockerfile b/scripts/apk/Dockerfile index 1c58b7b..a780900 100644 --- a/scripts/apk/Dockerfile +++ b/scripts/apk/Dockerfile @@ -1,4 +1,4 @@ -ARG ALPINE_VERSION=3.23 +ARG ALPINE_VERSION=3.24 FROM alpine:${ALPINE_VERSION} ARG BUILDER_UID=1000 diff --git a/scripts/apk/build.sh b/scripts/apk/build.sh index 9b0d061..e01f862 100755 --- a/scripts/apk/build.sh +++ b/scripts/apk/build.sh @@ -6,7 +6,7 @@ requested_arch="${2:-${ALPINE_ARCH:-x86_64}}" repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" . "${repo_root}/scripts/apk/package-lib.sh" -alpine_version="${ALPINE_VERSION:-3.23}" +alpine_version="${ALPINE_VERSION:-3.24}" repo_name="${ALPINE_REPO_NAME:-local}" build_platform="${ALPINE_BUILD_PLATFORM:-linux/amd64}" builder_uid="$(id -u)" diff --git a/scripts/apk/ci-smoke.sh b/scripts/apk/ci-smoke.sh index 766925c..63cef12 100755 --- a/scripts/apk/ci-smoke.sh +++ b/scripts/apk/ci-smoke.sh @@ -4,7 +4,7 @@ set -euo pipefail repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" repo_name="${ALPINE_REPO_NAME:-local}" arch="${ALPINE_ARCH:-$(apk --print-arch)}" -packages="${SMOKE_PACKAGES:-seaweedfs seaweedfs-master-openrc seaweedfs-filer-openrc seaweedfs-worker-openrc greptimedb}" +packages="${SMOKE_PACKAGES:-seaweedfs seaweedfs-master-openrc seaweedfs-filer-openrc seaweedfs-worker-openrc greptimedb lavinmq lavinmq-openrc}" repo_dir="${repo_root}/packages/${repo_name}/${arch}" read -r -a package_list <<< "${packages}" @@ -17,11 +17,21 @@ cp "${repo_dir}"/*.rsa.pub /etc/apk/keys/ echo "${repo_root}/packages/${repo_name}" >> /etc/apk/repositories apk update apk add "${package_list[@]}" -weed version +if command -v weed >/dev/null 2>&1; then + weed version + ls -1 /etc/seaweedfs +fi if command -v greptime >/dev/null 2>&1; then greptime --version fi -ls -1 /etc/seaweedfs +if command -v lavinmq >/dev/null 2>&1; then + lavinmq -v + lavinmqctl --version + lavinmqperf --version +fi if ls /etc/init.d/seaweedfs.* >/dev/null 2>&1; then find /etc/init.d -maxdepth 1 -name 'seaweedfs.*' -print | sort fi +if [[ -f /etc/init.d/lavinmq ]]; then + printf '%s\n' /etc/init.d/lavinmq +fi diff --git a/scripts/apk/publish-gitea.sh b/scripts/apk/publish-gitea.sh index f9710a4..4698c8e 100755 --- a/scripts/apk/publish-gitea.sh +++ b/scripts/apk/publish-gitea.sh @@ -3,7 +3,7 @@ set -euo pipefail repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" repo_name="${ALPINE_REPO_NAME:-local}" -alpine_version="${ALPINE_VERSION:-3.23}" +alpine_version="${ALPINE_VERSION:-3.24}" branch="${ALPINE_REGISTRY_BRANCH:-v${alpine_version}}" repository="${ALPINE_REGISTRY_REPOSITORY:-${PACKAGE_NAME:-main}}" instance_url="${INSTANCE_URL:-}" diff --git a/scripts/apk/smoke.sh b/scripts/apk/smoke.sh index d5c5b4b..d0a0b07 100755 --- a/scripts/apk/smoke.sh +++ b/scripts/apk/smoke.sh @@ -2,10 +2,10 @@ set -euo pipefail repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" -alpine_version="${ALPINE_VERSION:-3.23}" +alpine_version="${ALPINE_VERSION:-3.24}" platform="${ALPINE_BUILD_PLATFORM:-linux/amd64}" arch="${ALPINE_ARCH:-x86_64}" -packages="${SMOKE_PACKAGES:-seaweedfs seaweedfs-master-openrc seaweedfs-filer-openrc seaweedfs-worker-openrc}" +packages="${SMOKE_PACKAGES:-seaweedfs seaweedfs-master-openrc seaweedfs-filer-openrc seaweedfs-worker-openrc greptimedb lavinmq lavinmq-openrc}" if [[ ! -d "${repo_root}/packages/local/${arch}" ]]; then printf 'missing local repository: packages/local/%s\n' "${arch}" >&2 @@ -22,9 +22,22 @@ docker run --rm --platform "${platform}" \ echo /repo >> /etc/apk/repositories apk update >/dev/null apk add ${packages} >/dev/null - weed version - ls -1 /etc/seaweedfs + if command -v weed >/dev/null 2>&1; then + weed version + ls -1 /etc/seaweedfs + fi + if command -v greptime >/dev/null 2>&1; then + greptime --version + fi + if command -v lavinmq >/dev/null 2>&1; then + lavinmq -v + lavinmqctl --version + lavinmqperf --version + fi if ls /etc/init.d/seaweedfs.* >/dev/null 2>&1; then ls -1 /etc/init.d/seaweedfs.* | sort fi + if [ -f /etc/init.d/lavinmq ]; then + ls -1 /etc/init.d/lavinmq + fi " diff --git a/scripts/apk/test-shell.sh b/scripts/apk/test-shell.sh index d0e0e76..e3f235e 100755 --- a/scripts/apk/test-shell.sh +++ b/scripts/apk/test-shell.sh @@ -2,10 +2,10 @@ set -euo pipefail repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" -alpine_version="${ALPINE_VERSION:-3.23}" +alpine_version="${ALPINE_VERSION:-3.24}" platform="${ALPINE_BUILD_PLATFORM:-linux/amd64}" arch="${ALPINE_ARCH:-x86_64}" -packages="${TEST_SHELL_PACKAGES:-seaweedfs seaweedfs-doc bash-completion seaweedfs-master-openrc seaweedfs-filer-openrc seaweedfs-worker-openrc}" +packages="${TEST_SHELL_PACKAGES:-seaweedfs seaweedfs-doc bash-completion seaweedfs-master-openrc seaweedfs-filer-openrc seaweedfs-worker-openrc greptimedb lavinmq lavinmq-doc lavinmq-openrc}" shell="${TEST_SHELL:-/bin/bash}" timeout_seconds="${TEST_SHELL_TIMEOUT:-120}" @@ -49,12 +49,23 @@ docker run "${docker_args[@]}" \ printf "Installing test packages: %s\n" "${PACKAGE_LIST}" timeout "${TEST_SHELL_TIMEOUT}" apk add ${PACKAGE_LIST} - printf "\nInstalled SeaweedFS packages:\n" + printf "\nInstalled default test packages:\n" apk info -e seaweedfs seaweedfs-doc seaweedfs-bash-completion \ seaweedfs-master-openrc seaweedfs-filer-openrc seaweedfs-worker-openrc \ + greptimedb lavinmq lavinmq-doc lavinmq-openrc \ | sort - printf "\nSeaweedFS version:\n" - weed version + if command -v weed >/dev/null 2>&1; then + printf "\nSeaweedFS version:\n" + weed version + fi + if command -v greptime >/dev/null 2>&1; then + printf "\nGreptimeDB version:\n" + greptime --version + fi + if command -v lavinmq >/dev/null 2>&1; then + printf "\nLavinMQ version:\n" + lavinmq -v + fi printf "\nEntering %s. Repository mounted read-only at /work.\n\n" "${TEST_SHELL}" exec "${TEST_SHELL}" ' -- 2.54.0