From effbc94f509b157b71ed2d18f51133d7892722c9 Mon Sep 17 00:00:00 2001 From: Crypt Keeper <64215+codefromthecrypt@users.noreply.github.com> Date: Wed, 7 Feb 2024 10:29:52 +0700 Subject: [PATCH] deps: alpine 3.19.1 (#85) also fixes the test job so that it doesn't cache layers when it shouldn't due to differing build args. Signed-off-by: Adrian Cole --- .github/workflows/test.yml | 15 +++++++++++---- Dockerfile | 4 ++-- README.md | 22 +++++++++++----------- install.sh | 4 +--- 4 files changed, 25 insertions(+), 20 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a98024d..d562d6e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,7 +16,16 @@ on: jobs: test: + name: test (${{ matrix.name }}) runs-on: ubuntu-22.04 # newest available distribution, aka jellyfish + strategy: + fail-fast: false # don't fail fast as some failures are LTS specific + matrix: # match with maven-enforcer-plugin rules in pom.xml + include: + - name: build-arg + version: 21.0.2_p13 + - name: implicit + version: master steps: - name: Checkout Repository uses: actions/checkout@v4 @@ -24,7 +33,5 @@ jobs: fetch-depth: 1 # only needed to get the sha label # We can't cache Docker without using buildx because GH actions restricts /var/lib/docker # That's ok because DOCKER_PARENT_IMAGE is always ghcr.io and local anyway. - - name: Test LTS JDK - run: build-bin/configure_test && build-bin/test 21.0.1_p12 - - name: Test latest JDK - run: build-bin/configure_test && build-bin/test + - name: Test + run: build-bin/configure_test && build-bin/test ${{ matrix.version }} diff --git a/Dockerfile b/Dockerfile index 1e5a0e3..3f62155 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ # docker_parent_image is the base layer of full and jre image # # Use latest version here: https://github.com/orgs/openzipkin/packages/container/package/alpine -ARG docker_parent_image=ghcr.io/openzipkin/alpine:3.19.0 +ARG docker_parent_image=ghcr.io/openzipkin/alpine:3.19.1 # java_version and java_home are hard-coded here to allow the following: # * `docker build https://github.com/openzipkin/docker-java.git` @@ -17,7 +17,7 @@ ARG docker_parent_image=ghcr.io/openzipkin/alpine:3.19.0 # When updating, also update the README # * Use current version from https://pkgs.alpinelinux.org/packages?name=openjdk21, stripping # the `-rX` at the end. -ARG java_version=21.0.1_p12 +ARG java_version=21.0.2_p13 ARG java_home=/usr/lib/jvm/java-21-openjdk # We copy files from the context into a scratch container first to avoid a problem where docker and diff --git a/README.md b/README.md index 0542636..927534f 100644 --- a/README.md +++ b/README.md @@ -15,10 +15,10 @@ This is an internal base layer primarily used in [zipkin](https://github.com/ope To try the image, run the `java -version` command: ```bash -docker run --rm ghcr.io/openzipkin/java:21.0.1_p12 -version -openjdk version "21.0.1" 2023-10-17 -OpenJDK Runtime Environment (build 21.0.1+12-alpine-r0) -OpenJDK 64-Bit Server VM (build 21.0.1+12-alpine-r0, mixed mode, sharing) +$ docker run --rm ghcr.io/openzipkin/java:21.0.2_p13 -version +openjdk version "21.0.2" 2024-01-16 +OpenJDK Runtime Environment (build 21.0.2+13-alpine-r2) +OpenJDK 64-Bit Server VM (build 21.0.2+13-alpine-r2, mixed mode, sharing) ``` ## Release process @@ -39,19 +39,19 @@ Build the [Dockerfile](Dockerfile) using the current version without the revision classifier from here: * https://pkgs.alpinelinux.org/packages?name=openjdk21 ```bash -# Note 21.0.1_p12 not 21.0.1_p12-r0! -./build-bin/build 21.0.1_p12 +# Note 21.0.2_p13 not 21.0.2_p13-r2! +./build-bin/build 21.0.2_p13 ``` Next, verify the built image matches that version: ```bash -docker run --rm openzipkin/java:test -version -openjdk version "21.0.1" 2023-10-17 -OpenJDK Runtime Environment (build 21.0.1+12-alpine-r0) -OpenJDK 64-Bit Server VM (build 21.0.1+12-alpine-r0, mixed mode, sharing) +$ docker run --rm openzipkin/java:test -version +openjdk version "21.0.2" 2024-01-16 +OpenJDK Runtime Environment (build 21.0.2+13-alpine-r2) +OpenJDK 64-Bit Server VM (build 21.0.2+13-alpine-r2, mixed mode, sharing) ``` -To release the image, push a tag matching the arg to `build-bin/build` (ex `21.0.1_p12`). +To release the image, push a tag matching the arg to `build-bin/build` (ex `21.0.2_p13`). This triggers a [GitHub Actions](https://github.com/openzipkin/docker-java/actions) job to push the image. ## java.lang.ClassNotFoundException diff --git a/install.sh b/install.sh index 57e1bb6..2b83e42 100755 --- a/install.sh +++ b/install.sh @@ -14,7 +14,6 @@ # Install OS packages that support most software we build # * openjdk21-jdk: smaller than openjdk21, which includes docs and demos -# * openjdk21-jmods: needed for module support # * binutils: needed for some node modules and jlink --strip-debug # * tar: BusyBox built-in tar doesn't support --strip=1 # * wget: BusyBox built-in wget doesn't support --tries=3 @@ -32,8 +31,7 @@ maven_version=${2?maven_version is required. ex 3.9.6} java_major_version=$(echo ${java_version}| cut -f1 -d .) package=openjdk${java_major_version} -apk --no-cache add \ -${package}-jmods=~${java_version} ${package}-jdk=~${java_version} binutils tar wget +apk --no-cache add ${package}-jdk=~${java_version} binutils tar wget # Typically, only amd64 is tested in CI: Run commands that ensure binaries match current arch. if ! java -version || ! jar --version || ! jlink --version; then maybe_log_crash; fi