diff --git a/linux/Jenkinsfile b/linux/Jenkinsfile index 5a2179ddb..6eaee7f1b 100644 --- a/linux/Jenkinsfile +++ b/linux/Jenkinsfile @@ -344,7 +344,7 @@ def jenkinsStepAlpine() { } // reallocate jenkins agent per element in list if (ApkARCH == 'x86_64' || ApkARCH == 'aarch64') { - node("linux&&${apkLabel}") { + node("linux&&apkbuild&&${apkLabel}") { setup('Alpine', "${ApkARCH}") tool name: 'jfrog-cli', type: 'jfrog' unstash 'installercode' diff --git a/linux/jdk/alpine/src/main/packaging/Dockerfile b/linux/jdk/alpine/src/main/packaging/Dockerfile index 4c9f9522f..5da218fc3 100644 --- a/linux/jdk/alpine/src/main/packaging/Dockerfile +++ b/linux/jdk/alpine/src/main/packaging/Dockerfile @@ -1,6 +1,6 @@ ARG CONTAINER_REGISTRY="" -FROM ${CONTAINER_REGISTRY}alpine:3.19 +FROM ${CONTAINER_REGISTRY}alpine:latest ENV GOSU_VERSION 1.14 RUN set -eux; \ diff --git a/linux/jdk/alpine/src/main/packaging/entrypoint.sh b/linux/jdk/alpine/src/main/packaging/entrypoint.sh index fb406edb2..52aa28e7a 100644 --- a/linux/jdk/alpine/src/main/packaging/entrypoint.sh +++ b/linux/jdk/alpine/src/main/packaging/entrypoint.sh @@ -6,11 +6,19 @@ set -euox pipefail mkdir /home/builder/workspace cp -R /home/builder/build/generated/packaging /home/builder/workspace +# Install Adoptium Public Key +sudo chmod 664 /etc/apk/repositories +sudo chgrp abuild /etc/apk/repositories +sudo wget -O /etc/apk/keys/adoptium.rsa.pub https://packages.adoptium.net/artifactory/api/security/keypair/public/repositories/apk +sudo echo 'https://packages.adoptium.net/artifactory/apk/alpine/main' >> /etc/apk/repositories +sudo wget -O /home/builder/.abuild/adoptium.rsa.pub https://packages.adoptium.net/artifactory/api/security/keypair/public/repositories/apk + # Set permssions sudo chown -R builder /home/builder/out # Build package and set distributions it supports cd /home/builder/workspace/packaging +sudo apk update abuild -r arch=$(abuild -A) diff --git a/linux/jre/alpine/src/main/packaging/Dockerfile b/linux/jre/alpine/src/main/packaging/Dockerfile index 8c835318a..5da218fc3 100644 --- a/linux/jre/alpine/src/main/packaging/Dockerfile +++ b/linux/jre/alpine/src/main/packaging/Dockerfile @@ -1,6 +1,6 @@ ARG CONTAINER_REGISTRY="" -FROM ${CONTAINER_REGISTRY}alpine:3.19 +FROM ${CONTAINER_REGISTRY}alpine:latest ENV GOSU_VERSION 1.14 RUN set -eux; \ @@ -9,15 +9,19 @@ RUN set -eux; \ alpine-sdk \ bash \ ca-certificates \ + doas \ dpkg \ - sudo + sudo \ + wget # Create unprivileged user for building, see # https://github.com/hexops/dockerfile#use-a-static-uid-and-gid RUN adduser -D -h /home/builder builder \ && addgroup builder abuild \ - && echo 'builder ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers + && echo 'builder ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers \ + && echo 'permit builder as root' > /etc/doas.d/doas.conf +# Add GPG key USER builder WORKDIR /home/builder RUN --mount=type=secret,id=gpg,gid=1000,uid=1000,dst=/tmp/private.rsa \ diff --git a/linux/jre/alpine/src/main/packaging/entrypoint.sh b/linux/jre/alpine/src/main/packaging/entrypoint.sh index fb406edb2..52aa28e7a 100644 --- a/linux/jre/alpine/src/main/packaging/entrypoint.sh +++ b/linux/jre/alpine/src/main/packaging/entrypoint.sh @@ -6,11 +6,19 @@ set -euox pipefail mkdir /home/builder/workspace cp -R /home/builder/build/generated/packaging /home/builder/workspace +# Install Adoptium Public Key +sudo chmod 664 /etc/apk/repositories +sudo chgrp abuild /etc/apk/repositories +sudo wget -O /etc/apk/keys/adoptium.rsa.pub https://packages.adoptium.net/artifactory/api/security/keypair/public/repositories/apk +sudo echo 'https://packages.adoptium.net/artifactory/apk/alpine/main' >> /etc/apk/repositories +sudo wget -O /home/builder/.abuild/adoptium.rsa.pub https://packages.adoptium.net/artifactory/api/security/keypair/public/repositories/apk + # Set permssions sudo chown -R builder /home/builder/out # Build package and set distributions it supports cd /home/builder/workspace/packaging +sudo apk update abuild -r arch=$(abuild -A) diff --git a/linux_new/Jenkinsfile b/linux_new/Jenkinsfile index f033ebe6b..44f2a7114 100644 --- a/linux_new/Jenkinsfile +++ b/linux_new/Jenkinsfile @@ -14,8 +14,8 @@ def ArchiveFileName = "" // Github Artifact Repos def binaryRepo = "${params.VERSION.replace('jdk', 'temurin')}-binaries/releases/tag/${params.TAG}" def binaryDLRepo = "${params.VERSION.replace('jdk', 'temurin')}-binaries/releases/download/${params.TAG}" -def fullURL = "${baseURL}/${binaryRepo}" -def dlURL = "${baseURL}/${binaryDLRepo}" +def fullURL = "${baseURL}${binaryRepo}" +def dlURL = "${baseURL}${binaryDLRepo}" /* Supported Distro Arrays */ // Remember If Adding An Deb Distro to update the cacerts package // @@ -86,7 +86,7 @@ def TemurinVersion = "${params.TEMURIN_VERSION_INCREMENT}" /* Have Some Default Node Labels */ /* Specified Here To Simplify Updates Later */ -def PKGBUILDLABELAPK = 'build&&linux&&x64&&dockerBuild&&dynamicAzure' +def PKGBUILDLABELAPK = 'linux&&apkbuild&&buildx64&&dockerBuild' def PKGBUILDLABELDEB = 'build&&linux&&x64&&dockerBuild&&dynamicAzure' def PKGBUILDLABELRHEL = 'build&&linux&&x64&&dockerBuild&&dynamicAzure' @@ -134,9 +134,9 @@ def getPackageBuildLabel(String arch, String distro) { switch (distro) { case 'APK': if (arch == 'x64') { - return 'build&&linux&&x64&&dockerBuild&&dynamicAzure' + return 'linux&&apkbuild&&build&&x64&&dockerBuild' } else if (arch == 'aarch64') { - // return 'docker&&linux&&aarch64&&alpineInstaller' + // return 'docker&&linux&&aarch64&&apkbuild' return 'build&&docker&&linux&&aarch64' } else { error("Unsupported architecture '${arch}' for distro 'APK'") @@ -256,7 +256,7 @@ pipeline { string(name: 'UPSTREAM_JOB_NUMBER', defaultValue: '', description: 'Parameter From Upstream Job Not Required Here') booleanParam(name: 'UPLOAD_TESTRESULTS_ONLY', defaultValue: false, description: 'Parameter From Upstream Job Not Required Here') string(name: 'TIMESTAMP', defaultValue: '', description: 'Parameter From Upstream Job Not Required Here') - string(name: 'GITHUB_TOKEN', defaultValue: '', description: 'Parameter From Upstream Job Not Required Here') + password(name: 'GITHUB_TOKEN', defaultValue: '', description: 'Parameter From Upstream Job Not Required Here') string(name: 'ARTIFACTS_TO_SKIP', defaultValue: '', description: 'Parameter From Upstream Job Not Required Here') } // Stage Definition - Start @@ -304,7 +304,7 @@ pipeline { // Valid architectures def validArchs = ['aarch64', 'x64', 's390x', 'arm', 'ppc64le', 'riscv64'] - + // Extract architectures from the parameter def specifiedPaths = params.ARTIFACTS_TO_COPY.tokenize(',') // Split by commas def extractedArchs = specifiedPaths.collect { path -> @@ -748,7 +748,7 @@ stage('Build & Archive Package') { buildCli = params.ENABLEDEBUG.toBoolean() ? buildCli + ' --stacktrace' : buildCli sh("$buildCli") } - + if (DistArrayElement == "rhel" || DistArrayElement == "suse") { // for RPM based: RedHat / Suse / Alpine echo "Using RPM Private KEY" def privateKey = 'adoptium-artifactory-gpg-key' @@ -758,7 +758,7 @@ stage('Build & Archive Package') { sh("$buildCli") } } - + if (DistArrayElement == "alpine") { echo "Using Alpine Private KEY" def privateKey = 'adoptium-artifactory-rsa-key' @@ -920,4 +920,4 @@ post { } // End Of Post Build Trigger Stage } -// Pipeline Definition - End \ No newline at end of file +// Pipeline Definition - End diff --git a/linux_new/jdk/alpine/src/main/packaging/Dockerfile b/linux_new/jdk/alpine/src/main/packaging/Dockerfile index 4c9f9522f..06d481a63 100644 --- a/linux_new/jdk/alpine/src/main/packaging/Dockerfile +++ b/linux_new/jdk/alpine/src/main/packaging/Dockerfile @@ -1,6 +1,6 @@ ARG CONTAINER_REGISTRY="" -FROM ${CONTAINER_REGISTRY}alpine:3.19 +FROM ${CONTAINER_REGISTRY}alpine:3.21 ENV GOSU_VERSION 1.14 RUN set -eux; \ diff --git a/linux_new/jdk/alpine/src/main/packaging/entrypoint.sh b/linux_new/jdk/alpine/src/main/packaging/entrypoint.sh index fb406edb2..52aa28e7a 100644 --- a/linux_new/jdk/alpine/src/main/packaging/entrypoint.sh +++ b/linux_new/jdk/alpine/src/main/packaging/entrypoint.sh @@ -6,11 +6,19 @@ set -euox pipefail mkdir /home/builder/workspace cp -R /home/builder/build/generated/packaging /home/builder/workspace +# Install Adoptium Public Key +sudo chmod 664 /etc/apk/repositories +sudo chgrp abuild /etc/apk/repositories +sudo wget -O /etc/apk/keys/adoptium.rsa.pub https://packages.adoptium.net/artifactory/api/security/keypair/public/repositories/apk +sudo echo 'https://packages.adoptium.net/artifactory/apk/alpine/main' >> /etc/apk/repositories +sudo wget -O /home/builder/.abuild/adoptium.rsa.pub https://packages.adoptium.net/artifactory/api/security/keypair/public/repositories/apk + # Set permssions sudo chown -R builder /home/builder/out # Build package and set distributions it supports cd /home/builder/workspace/packaging +sudo apk update abuild -r arch=$(abuild -A) diff --git a/linux_new/jre/alpine/src/main/packaging/Dockerfile b/linux_new/jre/alpine/src/main/packaging/Dockerfile index 8c835318a..06d481a63 100644 --- a/linux_new/jre/alpine/src/main/packaging/Dockerfile +++ b/linux_new/jre/alpine/src/main/packaging/Dockerfile @@ -1,6 +1,6 @@ ARG CONTAINER_REGISTRY="" -FROM ${CONTAINER_REGISTRY}alpine:3.19 +FROM ${CONTAINER_REGISTRY}alpine:3.21 ENV GOSU_VERSION 1.14 RUN set -eux; \ @@ -9,15 +9,19 @@ RUN set -eux; \ alpine-sdk \ bash \ ca-certificates \ + doas \ dpkg \ - sudo + sudo \ + wget # Create unprivileged user for building, see # https://github.com/hexops/dockerfile#use-a-static-uid-and-gid RUN adduser -D -h /home/builder builder \ && addgroup builder abuild \ - && echo 'builder ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers + && echo 'builder ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers \ + && echo 'permit builder as root' > /etc/doas.d/doas.conf +# Add GPG key USER builder WORKDIR /home/builder RUN --mount=type=secret,id=gpg,gid=1000,uid=1000,dst=/tmp/private.rsa \ diff --git a/linux_new/jre/alpine/src/main/packaging/entrypoint.sh b/linux_new/jre/alpine/src/main/packaging/entrypoint.sh index fb406edb2..52aa28e7a 100644 --- a/linux_new/jre/alpine/src/main/packaging/entrypoint.sh +++ b/linux_new/jre/alpine/src/main/packaging/entrypoint.sh @@ -6,11 +6,19 @@ set -euox pipefail mkdir /home/builder/workspace cp -R /home/builder/build/generated/packaging /home/builder/workspace +# Install Adoptium Public Key +sudo chmod 664 /etc/apk/repositories +sudo chgrp abuild /etc/apk/repositories +sudo wget -O /etc/apk/keys/adoptium.rsa.pub https://packages.adoptium.net/artifactory/api/security/keypair/public/repositories/apk +sudo echo 'https://packages.adoptium.net/artifactory/apk/alpine/main' >> /etc/apk/repositories +sudo wget -O /home/builder/.abuild/adoptium.rsa.pub https://packages.adoptium.net/artifactory/api/security/keypair/public/repositories/apk + # Set permssions sudo chown -R builder /home/builder/out # Build package and set distributions it supports cd /home/builder/workspace/packaging +sudo apk update abuild -r arch=$(abuild -A)