diff --git a/alpine/Dockerfile b/alpine/Dockerfile index c4fbf990..911033a5 100644 --- a/alpine/Dockerfile +++ b/alpine/Dockerfile @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -ARG version=3180.v3dd999d24861-1 +ARG version=3180.v3dd999d24861-2 ARG JAVA_MAJOR_VERSION=17 FROM jenkins/agent:"${version}"-alpine-jdk"${JAVA_MAJOR_VERSION}" diff --git a/alpine/Dockerfile-jdk21 b/alpine/Dockerfile-jdk21 deleted file mode 100644 index 95ea9284..00000000 --- a/alpine/Dockerfile-jdk21 +++ /dev/null @@ -1,35 +0,0 @@ -# The MIT License -# -# Copyright (c) 2015-2020, CloudBees, Inc. and other Jenkins contributors -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -ARG version=3180.v3dd999d24861-1 -ARG JAVA_MAJOR_VERSION=21 -FROM jenkins/agent:"${version}"-alpine-jdk"${JAVA_MAJOR_VERSION}"-preview - -ARG user=jenkins - -USER root -COPY ../../jenkins-agent /usr/local/bin/jenkins-agent -RUN chmod +x /usr/local/bin/jenkins-agent &&\ - ln -s /usr/local/bin/jenkins-agent /usr/local/bin/jenkins-slave -USER ${user} - -ENTRYPOINT ["/usr/local/bin/jenkins-agent"] diff --git a/build.ps1 b/build.ps1 index 563ce767..4efc2b7f 100644 --- a/build.ps1 +++ b/build.ps1 @@ -4,7 +4,7 @@ Param( [String] $Target = "build", [String] $Build = '', [String] $VersionTag = 'NEXT_TAG_VERSION', - [String] $ParentImageVersion = '3180.v3dd999d24861-1', + [String] $ParentImageVersion = '3180.v3dd999d24861-2', [switch] $PushVersions = $false ) diff --git a/debian/Dockerfile b/debian/Dockerfile index 70fcf6f6..e88c18d8 100644 --- a/debian/Dockerfile +++ b/debian/Dockerfile @@ -1,4 +1,4 @@ -ARG version=3180.v3dd999d24861-1 +ARG version=3180.v3dd999d24861-2 ARG JAVA_MAJOR_VERSION=17 FROM jenkins/agent:"${version}"-jdk"${JAVA_MAJOR_VERSION}" diff --git a/debian/Dockerfile-jdk21 b/debian/preview/Dockerfile similarity index 89% rename from debian/Dockerfile-jdk21 rename to debian/preview/Dockerfile index 2a46ffd2..5e45facc 100644 --- a/debian/Dockerfile-jdk21 +++ b/debian/preview/Dockerfile @@ -1,4 +1,4 @@ -ARG version=3180.v3dd999d24861-1 +ARG version=3180.v3dd999d24861-2-preview ARG JAVA_MAJOR_VERSION=21 FROM jenkins/agent:"${version}"-jdk"${JAVA_MAJOR_VERSION}-preview" diff --git a/docker-bake.hcl b/docker-bake.hcl index 63d90203..d333f061 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -11,22 +11,33 @@ group "linux" { group "linux-arm64" { targets = [ + "alpine_jdk21", "debian_jdk11", "debian_jdk17", "debian_jdk21", - "alpine_jdk21", + ] +} + +group "linux-arm32" { + targets = [ + "debian_jdk11", + "debian_jdk17", + "debian_jdk21_preview", ] } group "linux-s390x" { - targets = [] + targets = [ + "debian_jdk11", + "debian_jdk21_preview", + ] } group "linux-ppc64le" { targets = [ "debian_jdk11", "debian_jdk17", - "debian_jdk21", + "debian_jdk21_preview", ] } @@ -37,7 +48,7 @@ variable "IMAGE_TAG" { #### This is for the "parent" image version to use (jenkins/agent:-) variable "PARENT_IMAGE_VERSION" { - default = "3180.v3dd999d24861-1" + default = "3180.v3dd999d24861-2" } variable "REGISTRY" { @@ -86,16 +97,16 @@ target "alpine_jdk17" { } target "alpine_jdk21" { - dockerfile = "alpine/Dockerfile-jdk21" + dockerfile = "alpine/Dockerfile" context = "." args = { JAVA_MAJOR_VERSION = "21" version = "${PARENT_IMAGE_VERSION}" } tags = [ - equal(ON_TAG, "true") ? "${REGISTRY}/${JENKINS_REPO}:${PARENT_IMAGE_VERSION}-alpine-jdk21-preview" : "", - "${REGISTRY}/${JENKINS_REPO}:alpine-jdk21-preview", - "${REGISTRY}/${JENKINS_REPO}:latest-alpine-jdk21-preview", + equal(ON_TAG, "true") ? "${REGISTRY}/${JENKINS_REPO}:${PARENT_IMAGE_VERSION}-alpine-jdk21" : "", + "${REGISTRY}/${JENKINS_REPO}:alpine-jdk21", + "${REGISTRY}/${JENKINS_REPO}:latest-alpine-jdk21", ] platforms = ["linux/amd64", "linux/arm64"] } @@ -133,16 +144,31 @@ target "debian_jdk17" { } target "debian_jdk21" { - dockerfile = "debian/Dockerfile-jdk21" + dockerfile = "debian/Dockerfile" context = "." args = { JAVA_MAJOR_VERSION = "21" version = "${PARENT_IMAGE_VERSION}" } + tags = [ + equal(ON_TAG, "true") ? "${REGISTRY}/${JENKINS_REPO}:${PARENT_IMAGE_VERSION}-jdk21" : "", + "${REGISTRY}/${JENKINS_REPO}:jdk21", + "${REGISTRY}/${JENKINS_REPO}:latest-jdk21", + ] + platforms = ["linux/amd64", "linux/arm64"] +} + +target "debian_jdk21_preview" { + dockerfile = "debian/preview/Dockerfile" + context = "." + args = { + JAVA_MAJOR_VERSION = "21" + version = "${PARENT_IMAGE_VERSION}-preview" + } tags = [ equal(ON_TAG, "true") ? "${REGISTRY}/${JENKINS_REPO}:${PARENT_IMAGE_VERSION}-jdk21-preview" : "", "${REGISTRY}/${JENKINS_REPO}:jdk21-preview", "${REGISTRY}/${JENKINS_REPO}:latest-jdk21-preview", ] - platforms = ["linux/amd64", "linux/arm64", "linux/ppc64le"] + platforms = ["linux/ppc64le", "linux/s390x", "linux/arm/v7"] } diff --git a/tests/tests.bats b/tests/tests.bats index e81fb4b5..30dc0bba 100755 --- a/tests/tests.bats +++ b/tests/tests.bats @@ -49,8 +49,8 @@ SUT_IMAGE="$(get_sut_image)" # Old version used to test overriding the build arguments. # This old version must have the same tag suffixes as the ones defined in the docker-bake file (`-jdk17`, `jdk11`, etc.) - TEST_VERSION="3148.v532a_7e715ee3" - PARENT_IMAGE_VERSION_SUFFIX="4" + TEST_VERSION="3180.v3dd999d24861" + PARENT_IMAGE_VERSION_SUFFIX="2" ARG_TEST_VERSION="${TEST_VERSION}-${PARENT_IMAGE_VERSION_SUFFIX}" TEST_USER="root" diff --git a/updatecli/updatecli.d/docker-agent.yaml b/updatecli/updatecli.d/docker-agent.yaml index 60db9e61..f9997451 100644 --- a/updatecli/updatecli.d/docker-agent.yaml +++ b/updatecli/updatecli.d/docker-agent.yaml @@ -156,17 +156,6 @@ targets: keyword: ARG matcher: version scmid: default - setAlpine21PreviewDockerImage: - name: Bump the parent image `jenkins/agent` version on Alpine - kind: dockerfile - spec: - file: alpine/Dockerfile-jdk21 - instruction: - keyword: ARG - matcher: version - transformers: - - addsuffix: "-preview" - scmid: default setDebianDockerImage: name: Bump the parent image `jenkins/agent` version on Debian kind: dockerfile @@ -180,7 +169,7 @@ targets: name: Bump the parent image `jenkins/agent` version on Debian kind: dockerfile spec: - file: debian/Dockerfile-jdk21 + file: debian/preview/Dockerfile instruction: keyword: ARG matcher: version diff --git a/windows/nanoserver/Dockerfile b/windows/nanoserver/Dockerfile index 966dc033..823cf20c 100644 --- a/windows/nanoserver/Dockerfile +++ b/windows/nanoserver/Dockerfile @@ -21,7 +21,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -ARG version=3180.v3dd999d24861-1 +ARG version=3180.v3dd999d24861-2 ARG JAVA_MAJOR_VERSION=17 ARG WINDOWS_VERSION_TAG=1809 FROM jenkins/agent:"${version}"-jdk"${JAVA_MAJOR_VERSION}"-nanoserver-"${WINDOWS_VERSION_TAG}" diff --git a/windows/windowsservercore/Dockerfile b/windows/windowsservercore/Dockerfile index c54bd37e..5a03f1e9 100644 --- a/windows/windowsservercore/Dockerfile +++ b/windows/windowsservercore/Dockerfile @@ -21,7 +21,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -ARG version=3180.v3dd999d24861-1 +ARG version=3180.v3dd999d24861-2 ARG JAVA_MAJOR_VERSION=17 ARG WINDOWS_VERSION_TAG=ltsc2019 FROM jenkins/agent:"${version}"-jdk"${JAVA_MAJOR_VERSION}"-windowsservercore-"${WINDOWS_VERSION_TAG}"