Skip to content

Commit

Permalink
Fix APK package build
Browse files Browse the repository at this point in the history
  • Loading branch information
steelhead31 committed Jan 29, 2025
1 parent 922b642 commit fb32fba
Show file tree
Hide file tree
Showing 10 changed files with 59 additions and 19 deletions.
2 changes: 1 addition & 1 deletion linux/Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
2 changes: 1 addition & 1 deletion linux/jdk/alpine/src/main/packaging/Dockerfile
Original file line number Diff line number Diff line change
@@ -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; \
Expand Down
8 changes: 8 additions & 0 deletions linux/jdk/alpine/src/main/packaging/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
10 changes: 7 additions & 3 deletions linux/jre/alpine/src/main/packaging/Dockerfile
Original file line number Diff line number Diff line change
@@ -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; \
Expand All @@ -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 \
Expand Down
8 changes: 8 additions & 0 deletions linux/jre/alpine/src/main/packaging/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
20 changes: 10 additions & 10 deletions linux_new/Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -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 //
Expand Down Expand Up @@ -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'

Expand Down Expand Up @@ -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'")
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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 ->
Expand Down Expand Up @@ -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'
Expand All @@ -758,7 +758,7 @@ stage('Build & Archive Package') {
sh("$buildCli")
}
}

if (DistArrayElement == "alpine") {
echo "Using Alpine Private KEY"
def privateKey = 'adoptium-artifactory-rsa-key'
Expand Down Expand Up @@ -920,4 +920,4 @@ post {
}
// End Of Post Build Trigger Stage
}
// Pipeline Definition - End
// Pipeline Definition - End
2 changes: 1 addition & 1 deletion linux_new/jdk/alpine/src/main/packaging/Dockerfile
Original file line number Diff line number Diff line change
@@ -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; \
Expand Down
8 changes: 8 additions & 0 deletions linux_new/jdk/alpine/src/main/packaging/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
10 changes: 7 additions & 3 deletions linux_new/jre/alpine/src/main/packaging/Dockerfile
Original file line number Diff line number Diff line change
@@ -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; \
Expand All @@ -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 \
Expand Down
8 changes: 8 additions & 0 deletions linux_new/jre/alpine/src/main/packaging/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down

0 comments on commit fb32fba

Please sign in to comment.