From 545e0ece5fa2a84a138001f09fbd6723c03046a2 Mon Sep 17 00:00:00 2001 From: Wouter Born Date: Sun, 15 Dec 2024 21:22:02 +0100 Subject: [PATCH] Add openHAB 5 support * Use Java 21 with openHAB 5 * Remove linux/arm/v7 support * Update versions in build help Related to openhab/openhab-distro#1689 Signed-off-by: Wouter Born --- README.md | 4 +--- alpine/Dockerfile | 2 +- build | 14 +++++++------- debian/Dockerfile | 2 +- helper-functions | 13 +++++++------ 5 files changed, 17 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 1fec7c4f..033225b2 100644 --- a/README.md +++ b/README.md @@ -89,9 +89,7 @@ The following Docker platforms are supported (automatically determined): * `linux/amd64` * `linux/arm64` -* `linux/arm/v7` - -There is no `linux/arm/v7` Alpine image for openHAB 3 (or newer) because the required openjdk package is unavailable for this platform. +* `linux/arm/v7` (Debian openHAB 4 (or older), Alpine openHAB 2 (or older)) ## Usage diff --git a/alpine/Dockerfile b/alpine/Dockerfile index 9134004d..fdaa6df3 100644 --- a/alpine/Dockerfile +++ b/alpine/Dockerfile @@ -73,7 +73,7 @@ RUN JAVA_HOME=$(find /usr/lib/jvm -maxdepth 1 -name "*jdk*" -type d) && \ # hadolint ignore=SC2016 RUN version="$(echo $OPENHAB_VERSION | sed 's/snapshot/SNAPSHOT/g')" && \ if [ $(echo $version | grep -E '^.+\.(M|RC).+$') ]; then url="https://openhab.jfrog.io/openhab/libs-milestone-local/org/openhab/distro/openhab/${version}/openhab-${version}.zip"; \ - elif [ $(echo $version | grep -E '^4\..+-SNAPSHOT$') ]; then url="https://ci.openhab.org/job/openHAB-Distribution/lastSuccessfulBuild/artifact/distributions/openhab/target/openhab-${version}.zip"; \ + elif [ $(echo $version | grep -E '^5\..+-SNAPSHOT$') ]; then url="https://ci.openhab.org/job/openHAB-Distribution/lastSuccessfulBuild/artifact/distributions/openhab/target/openhab-${version}.zip"; \ else url="https://openhab.jfrog.io/openhab/libs-release/org/openhab/distro/openhab/${version}/openhab-${version}.zip"; fi && \ wget -nv -O /tmp/openhab.zip "$url" && \ unzip -q /tmp/openhab.zip -d "${OPENHAB_HOME}" -x "*.bat" "*.ps1" "*.psm1" && \ diff --git a/build b/build index 4a3b9fc7..545fec8f 100755 --- a/build +++ b/build @@ -50,10 +50,10 @@ resolve_version_tags() { } print_help() { - local snapshot_4x=$(grep -E '^4\.[0-9]+\.[0-9]+-snapshot$' <<< $VERSIONS | tail -n 1) + local snapshot_5x=$(grep -E '^5\.[0-9]+\.[0-9]+-snapshot$' <<< $VERSIONS | tail -n 1) local milestone_4x=$(grep -E '^4\.[0-9]+\.[0-9]+.(M[0-9]+)$' <<< $VERSIONS | tail -n 1) - local stable_3x=$(grep -E '^3\.[0-9]+\.[0-9]+$' <<< $VERSIONS | tail -n 1) - local stable_40x=$(grep -E '^4\.0\.[0-9]+$' <<< $VERSIONS | tail -n 1) + local stable_42x=$(grep -E '^4\.2\.[0-9]+$' <<< $VERSIONS | tail -n 1) + local stable_43x=$(grep -E '^4\.3\.[0-9]+$' <<< $VERSIONS | tail -n 1) cat <<-EOI Usage: ./build [OPTIONS] @@ -67,17 +67,17 @@ Log in to the Docker Registry with "docker login" before building and pushing th Examples: -Build the Debian and Alpine $snapshot_4x images: +Build the Debian and Alpine $snapshot_5x images: ./build -Build the Debian $snapshot_4x images: +Build the Debian $snapshot_5x images: ./build debian Build the Alpine $milestone_4x images: ./build $milestone_4x alpine -Build the $stable_40x and $stable_3x Debian/Alpine images and push them to $(docker_repo): - ./build $stable_40x $stable_3x --push +Build the $stable_43x and $stable_42x Debian/Alpine images and push them to $(docker_repo): + ./build $stable_43x $stable_42x --push Build the latest/snapshot Debian images by resolving the versions ("milestone" can also be resolved): ./build latest snapshot debian diff --git a/debian/Dockerfile b/debian/Dockerfile index 4c2c3dc8..d010f2eb 100644 --- a/debian/Dockerfile +++ b/debian/Dockerfile @@ -75,7 +75,7 @@ RUN JAVA_HOME=$(find /usr/lib/jvm -maxdepth 1 -name "*jdk*" -type d) && \ # hadolint ignore=SC2016 RUN version="$(echo $OPENHAB_VERSION | sed 's/snapshot/SNAPSHOT/g')" && \ if [ $(echo $version | grep -E '^.+\.(M|RC).+$') ]; then url="https://openhab.jfrog.io/openhab/libs-milestone-local/org/openhab/distro/openhab/${version}/openhab-${version}.zip"; \ - elif [ $(echo $version | grep -E '^4\..+-SNAPSHOT$') ]; then url="https://ci.openhab.org/job/openHAB-Distribution/lastSuccessfulBuild/artifact/distributions/openhab/target/openhab-${version}.zip"; \ + elif [ $(echo $version | grep -E '^5\..+-SNAPSHOT$') ]; then url="https://ci.openhab.org/job/openHAB-Distribution/lastSuccessfulBuild/artifact/distributions/openhab/target/openhab-${version}.zip"; \ else url="https://openhab.jfrog.io/openhab/libs-release/org/openhab/distro/openhab/${version}/openhab-${version}.zip"; fi && \ wget -nv -O /tmp/openhab.zip "$url" && \ unzip -q /tmp/openhab.zip -d "${OPENHAB_HOME}" -x "*.bat" "*.ps1" "*.psm1" && \ diff --git a/helper-functions b/helper-functions index e68f670f..7d8cb91c 100644 --- a/helper-functions +++ b/helper-functions @@ -36,11 +36,12 @@ platforms() { local version="$1" local base="$2" - if [ "$base" == "alpine" ]; then - # There is no linux/arm/v7 Alpine image for openHAB 3 (or newer) because the required openjdk package is unavailable for this architecture - echo "linux/amd64,linux/arm64" - else + if [[ "$version" =~ ^4.*$ ]] && [ "$base" == "debian" ]; then echo "linux/amd64,linux/arm64,linux/arm/v7" + else + # There are no linux/arm/v7 images for openHAB 5 (or newer) because this platform is no longer supported. + # There are no linux/arm/v7 Alpine images for openHAB 3 (or newer) because the required openjdk package is unavailable for this platform. + echo "linux/amd64,linux/arm64" fi } @@ -219,8 +220,8 @@ build() { local java_version="" case $openhab_version in - 3.*) java_version="11";; - *) java_version="17";; + 4.*) java_version="17";; + *) java_version="21";; esac local build_arg_options="--build-arg BUILD_DATE=$(date +"%Y-%m-%dT%H:%M:%SZ") --build-arg VCS_REF=$(git rev-parse HEAD) --build-arg JAVA_VERSION=$java_version --build-arg OPENHAB_VERSION=$openhab_version"