From 72d21abd65ff53aa4a78ad8386399d4679e87576 Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Fri, 27 Mar 2026 14:35:09 +0100 Subject: [PATCH 01/24] adapt scala agent to base agent java 21 --- common/jenkins-agents/scala/docker/Dockerfile.ubi8 | 5 +++-- common/jenkins-agents/scala/docker/Dockerfile.ubi9 | 5 +++-- common/jenkins-agents/scala/docker/use-j11.sh | 2 +- common/jenkins-agents/scala/docker/use-j17.sh | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/common/jenkins-agents/scala/docker/Dockerfile.ubi8 b/common/jenkins-agents/scala/docker/Dockerfile.ubi8 index c6b15663d..a7f7cfe2a 100644 --- a/common/jenkins-agents/scala/docker/Dockerfile.ubi8 +++ b/common/jenkins-agents/scala/docker/Dockerfile.ubi8 @@ -25,10 +25,11 @@ RUN chmod +x /usr/local/bin/use-j*.sh && \ chmod ugo+s /usr/local/bin/use-j*.sh && \ sh -c 'chmod ugo+s $(which alternatives)' && \ ls -la /usr/local/bin/use-j*.sh && \ - echo "--- STARTS JDK 11/17 TESTS ---" && \ + echo "--- STARTS JDK 11/17/21 TESTS ---" && \ use-j11.sh && \ use-j17.sh && \ - echo "--- ENDS JDK 11/17 TESTS ---" + use-j21.sh && \ + echo "--- ENDS JDK 11/17/21 TESTS ---" COPY sbtconfig/repositories $HOME/.sbt/repositories COPY sbtconfig/credentials.sbt $HOME/.sbt/1.0/plugins/credentials.sbt diff --git a/common/jenkins-agents/scala/docker/Dockerfile.ubi9 b/common/jenkins-agents/scala/docker/Dockerfile.ubi9 index c6b15663d..a7f7cfe2a 100644 --- a/common/jenkins-agents/scala/docker/Dockerfile.ubi9 +++ b/common/jenkins-agents/scala/docker/Dockerfile.ubi9 @@ -25,10 +25,11 @@ RUN chmod +x /usr/local/bin/use-j*.sh && \ chmod ugo+s /usr/local/bin/use-j*.sh && \ sh -c 'chmod ugo+s $(which alternatives)' && \ ls -la /usr/local/bin/use-j*.sh && \ - echo "--- STARTS JDK 11/17 TESTS ---" && \ + echo "--- STARTS JDK 11/17/21 TESTS ---" && \ use-j11.sh && \ use-j17.sh && \ - echo "--- ENDS JDK 11/17 TESTS ---" + use-j21.sh && \ + echo "--- ENDS JDK 11/17/21 TESTS ---" COPY sbtconfig/repositories $HOME/.sbt/repositories COPY sbtconfig/credentials.sbt $HOME/.sbt/1.0/plugins/credentials.sbt diff --git a/common/jenkins-agents/scala/docker/use-j11.sh b/common/jenkins-agents/scala/docker/use-j11.sh index f2eb428a4..1821e0f99 100644 --- a/common/jenkins-agents/scala/docker/use-j11.sh +++ b/common/jenkins-agents/scala/docker/use-j11.sh @@ -1,7 +1,7 @@ #!/bin/bash -JAVA_HOME_FOLDER=$(ls -lah /usr/lib/jvm | grep "java-11-openjdk-11.*\.x86_64" | awk '{print $NF}' | head -1) JAVA_VERSION="11" +JAVA_HOME_FOLDER=$(ls -lah /usr/lib/jvm | grep "java-${JAVA_VERSION}-openjdk-.*\.x86_64" | awk '{print $NF}' | head -1) function msg_and_exit() { echo "ERROR: ${1}" diff --git a/common/jenkins-agents/scala/docker/use-j17.sh b/common/jenkins-agents/scala/docker/use-j17.sh index f2d96ba0b..c2dc8f218 100644 --- a/common/jenkins-agents/scala/docker/use-j17.sh +++ b/common/jenkins-agents/scala/docker/use-j17.sh @@ -1,7 +1,7 @@ #!/bin/bash -JAVA_HOME_FOLDER=$(ls -lah /usr/lib/jvm | grep "java-17-openjdk-.*\.x86_64" | awk '{print $NF}' | head -1) JAVA_VERSION="17" +JAVA_HOME_FOLDER=$(ls -lah /usr/lib/jvm | grep "java-${JAVA_VERSION}-openjdk-.*\.x86_64" | awk '{print $NF}' | head -1) function msg_and_exit() { echo "ERROR: ${1}" From 2e2575b994d738e0c06278c5ed6b64009211a6fc Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Fri, 27 Mar 2026 14:36:09 +0100 Subject: [PATCH 02/24] adapt to base agent java 21 and add java 25 --- .../jenkins-agents/jdk/docker/Dockerfile.ubi9 | 9 +++-- common/jenkins-agents/jdk/docker/use-j11.sh | 3 +- common/jenkins-agents/jdk/docker/use-j17.sh | 3 +- common/jenkins-agents/jdk/docker/use-j21.sh | 2 +- common/jenkins-agents/jdk/docker/use-j25.sh | 38 +++++++++++++++++++ 5 files changed, 48 insertions(+), 7 deletions(-) create mode 100644 common/jenkins-agents/jdk/docker/use-j25.sh diff --git a/common/jenkins-agents/jdk/docker/Dockerfile.ubi9 b/common/jenkins-agents/jdk/docker/Dockerfile.ubi9 index de97d0d0f..a65023467 100644 --- a/common/jenkins-agents/jdk/docker/Dockerfile.ubi9 +++ b/common/jenkins-agents/jdk/docker/Dockerfile.ubi9 @@ -26,7 +26,7 @@ ENV JAVA_TOOL_OPTIONS="-XX:+UnlockExperimentalVMOptions -Dsun.zip.disableMemoryM # Install Java devel 11, 17 21 and binutils # Note: use java scripts are executed to test the scripts but also use-j11.sh in called 3nd place to set is as default version -RUN yum install -y java-11-openjdk-devel java-17-openjdk-devel java-21-openjdk-devel binutils && \ +RUN yum install -y java-11-openjdk-devel java-17-openjdk-devel java-21-openjdk-devel java-25-openjdk-devel binutils && \ yum clean all -y && \ rm -rf /var/cache/yum @@ -36,11 +36,12 @@ RUN chmod +x /usr/local/bin/use-j*.sh && \ chmod ugo+s /usr/local/bin/use-j*.sh && \ sh -c 'chmod ugo+s $(which alternatives)' && \ ls -la /usr/local/bin/use-j*.sh && \ - echo "--- STARTS JDK 11/17/21 TESTS ---" && \ + echo "--- STARTS JDK 11/17/21/25 TESTS ---" && \ use-j11.sh && \ - use-j21.sh && \ use-j17.sh && \ - echo "--- ENDS JDK 11/17/21 TESTS ---" + use-j25.sh && \ + use-j21.sh && \ + echo "--- ENDS JDK 11/17/21/25 TESTS ---" # Set maven (nexus+proxy) and gradle (proxy) settings ENV MAVEN_OPTS="-Duser.home=$HOME" \ diff --git a/common/jenkins-agents/jdk/docker/use-j11.sh b/common/jenkins-agents/jdk/docker/use-j11.sh index f2eb428a4..bb6fb927d 100644 --- a/common/jenkins-agents/jdk/docker/use-j11.sh +++ b/common/jenkins-agents/jdk/docker/use-j11.sh @@ -1,7 +1,8 @@ #!/bin/bash -JAVA_HOME_FOLDER=$(ls -lah /usr/lib/jvm | grep "java-11-openjdk-11.*\.x86_64" | awk '{print $NF}' | head -1) JAVA_VERSION="11" +JAVA_HOME_FOLDER=$(ls -lah /usr/lib/jvm | grep "java-${JAVA_VERSION}-openjdk-.*\.x86_64" | awk '{print $NF}' | head -1) + function msg_and_exit() { echo "ERROR: ${1}" diff --git a/common/jenkins-agents/jdk/docker/use-j17.sh b/common/jenkins-agents/jdk/docker/use-j17.sh index f2d96ba0b..0f0bbe608 100644 --- a/common/jenkins-agents/jdk/docker/use-j17.sh +++ b/common/jenkins-agents/jdk/docker/use-j17.sh @@ -1,7 +1,8 @@ #!/bin/bash -JAVA_HOME_FOLDER=$(ls -lah /usr/lib/jvm | grep "java-17-openjdk-.*\.x86_64" | awk '{print $NF}' | head -1) JAVA_VERSION="17" +JAVA_HOME_FOLDER=$(ls -lah /usr/lib/jvm | grep "java-${JAVA_VERSION}-openjdk-.*\.x86_64" | awk '{print $NF}' | head -1) + function msg_and_exit() { echo "ERROR: ${1}" diff --git a/common/jenkins-agents/jdk/docker/use-j21.sh b/common/jenkins-agents/jdk/docker/use-j21.sh index 66c9fbae6..85434e488 100644 --- a/common/jenkins-agents/jdk/docker/use-j21.sh +++ b/common/jenkins-agents/jdk/docker/use-j21.sh @@ -1,7 +1,7 @@ #!/bin/bash -JAVA_HOME_FOLDER=$(ls -lah /usr/lib/jvm | grep "java-21-openjdk-.*\.x86_64" | awk '{print $NF}' | head -1) JAVA_VERSION="21" +JAVA_HOME_FOLDER=$(ls -lah /usr/lib/jvm | grep "java-${JAVA_VERSION}-openjdk-.*\.x86_64" | awk '{print $NF}' | head -1) function msg_and_exit() { echo "ERROR: ${1}" diff --git a/common/jenkins-agents/jdk/docker/use-j25.sh b/common/jenkins-agents/jdk/docker/use-j25.sh new file mode 100644 index 000000000..68fa02551 --- /dev/null +++ b/common/jenkins-agents/jdk/docker/use-j25.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +JAVA_VERSION="25" +JAVA_HOME_FOLDER=$(ls -lah /usr/lib/jvm | grep "java-${JAVA_VERSION}-openjdk-.*\.x86_64" | awk '{print $NF}' | head -1) + +function msg_and_exit() { + echo "ERROR: ${1}" + exit 1 +} + +echo "Switching to java ${JAVA_VERSION}:" +JAVA_HOME="/usr/lib/jvm/${JAVA_HOME_FOLDER}" + +alternatives --set java ${JAVA_HOME}/bin/java || \ + msg_and_exit "Cannot configure java ${JAVA_VERSION} as the alternative to use for java." +java -version 2>&1 | grep -q "\s\+${JAVA_VERSION}" || msg_and_exit "Java version is not ${JAVA_VERSION}." + +if [ -x ${JAVA_HOME}/bin/javac ]; then + alternatives --set javac ${JAVA_HOME}/bin/javac || \ + msg_and_exit "Cannot configure javac ${JAVA_VERSION} as the alternative to use for javac." + javac -version 2>&1 | grep -q "\s\+${JAVA_VERSION}" || msg_and_exit "Javac version is not ${JAVA_VERSION}." +else + echo "WARNING: Not found binary for javac in path ${JAVA_HOME}/bin/javac " +fi + +java -version 2>&1 +if which 'javac'; then + javac -version 2>&1 +else + echo "WARNING: Binary javac is not available." +fi + +if [ -d ${JAVA_HOME}/bin/ ]; then + export JAVA_HOME +else + msg_and_exit "Cannot configure JAVA_HOME environment variable to ${JAVA_HOME}" +fi +echo "JAVA_HOME: $JAVA_HOME" \ No newline at end of file From cdff961ca9558d5dbe7ae3ed4844ed3fd6aeea65 Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Fri, 27 Mar 2026 14:36:43 +0100 Subject: [PATCH 03/24] adapt Quickstarters --- be-java-springboot/Jenkinsfile.template | 2 +- be-scala-play/Jenkinsfile | 2 +- be-scala-play/Jenkinsfile.template | 2 +- e2e-spock-geb/Jenkinsfile.template | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/be-java-springboot/Jenkinsfile.template b/be-java-springboot/Jenkinsfile.template index 9c46b7653..5d821ebf8 100644 --- a/be-java-springboot/Jenkinsfile.template +++ b/be-java-springboot/Jenkinsfile.template @@ -26,7 +26,7 @@ def stageBuild(def context) { } stage('Build and Unit Test') { withEnv(["TAGVERSION=${context.tagversion}", "NEXUS_HOST=${context.nexusHost}", "NEXUS_USERNAME=${context.nexusUsername}", "NEXUS_PASSWORD=${context.nexusPassword}", "JAVA_OPTS=${javaOpts}","GRADLE_TEST_OPTS=${gradleTestOpts}","ENVIRONMENT=${springBootEnv}"]) { - def status = sh(script: "source use-j21.sh && ./gradlew clean build --stacktrace --no-daemon && source use-j17.sh", returnStatus: true) + def status = sh(script: "source use-j21.sh && ./gradlew clean build --stacktrace --no-daemon && source use-j21.sh", returnStatus: true) if (status != 0) { error "Build failed!" } diff --git a/be-scala-play/Jenkinsfile b/be-scala-play/Jenkinsfile index 44319a58f..28d9ad46d 100644 --- a/be-scala-play/Jenkinsfile +++ b/be-scala-play/Jenkinsfile @@ -19,7 +19,7 @@ odsQuickstarterPipeline( ) { context -> stage("init scala play project") { - sh "source use-j11.sh && sbt -no-colors -v new file://${context.sourceDir}/be-scala-play.g8 --name=${context.componentId} --secret=\$(uuidgen) && source use-j17.sh" + sh "source use-j11.sh && sbt -no-colors -v new file://${context.sourceDir}/be-scala-play.g8 --name=${context.componentId} --secret=\$(uuidgen) && source use-j21.sh" } odsQuickstarterStageCopyFiles(context) diff --git a/be-scala-play/Jenkinsfile.template b/be-scala-play/Jenkinsfile.template index 1ee73182d..9e564825c 100644 --- a/be-scala-play/Jenkinsfile.template +++ b/be-scala-play/Jenkinsfile.template @@ -22,7 +22,7 @@ odsComponentPipeline( def stageBuild(def context) { stage('Build and Unit Test') { withEnv(["TAGVERSION=${context.tagversion}"]){ - def status = sh(script: "source use-j11.sh && sbt -v clean scalafmtSbtCheck scalafmtCheckAll coverage test coverageReport coverageOff compile:clean copyDockerFiles && source use-j17.sh", returnStatus: true) + def status = sh(script: "source use-j11.sh && sbt -v clean scalafmtSbtCheck scalafmtCheckAll coverage test coverageReport coverageOff compile:clean copyDockerFiles && source use-j21.sh", returnStatus: true) if (status != 0) { error "Build failed!" } diff --git a/e2e-spock-geb/Jenkinsfile.template b/e2e-spock-geb/Jenkinsfile.template index 0cce0f820..6a9d4956a 100644 --- a/e2e-spock-geb/Jenkinsfile.template +++ b/e2e-spock-geb/Jenkinsfile.template @@ -50,11 +50,11 @@ def stageTest(def context) { // Remember that any test case in the installation folder will be executed in production. def status if (context.environment == 'prod') { - status = sh(script: './gradlew clean testProd --stacktrace --no-daemon', returnStatus: true) + status = sh(script: 'source use-j17.sh && ./gradlew clean testProd --stacktrace --no-daemon && source use-j21.sh', returnStatus: true) junit(testResults:"build/test-results/installation*/*.xml", allowEmptyResults:true) stash(name: "installation-test-reports-junit-xml-${context.componentId}-${context.buildNumber}", includes: 'build/test-results/installation*/*.xml', allowEmpty: true) } else { - status = sh(script: './gradlew clean test --stacktrace --no-daemon', returnStatus: true) + status = sh(script: 'source use-j17.sh && ./gradlew clean test --stacktrace --no-daemon && source use-j21.sh', returnStatus: true) junit(testResults:"build/test-results/installation*/*.xml, build/test-results/integration*/*.xml, build/test-results/acceptance*/*.xml", allowEmptyResults:true) stash(name: "installation-test-reports-junit-xml-${context.componentId}-${context.buildNumber}", includes: 'build/test-results/installation*/*.xml', allowEmpty: true) stash(name: "integration-test-reports-junit-xml-${context.componentId}-${context.buildNumber}", includes: 'build/test-results/integration*/*.xml', allowEmpty: true) From 371cea607498548a3ef0ae64f740a942762ddc2b Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Fri, 27 Mar 2026 15:07:21 +0100 Subject: [PATCH 04/24] java 25 ubi8 --- common/jenkins-agents/jdk/docker/Dockerfile.ubi8 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/common/jenkins-agents/jdk/docker/Dockerfile.ubi8 b/common/jenkins-agents/jdk/docker/Dockerfile.ubi8 index 87e20335f..f4e0f1232 100644 --- a/common/jenkins-agents/jdk/docker/Dockerfile.ubi8 +++ b/common/jenkins-agents/jdk/docker/Dockerfile.ubi8 @@ -26,7 +26,7 @@ ENV JAVA_TOOL_OPTIONS="-XX:+UnlockExperimentalVMOptions -Dsun.zip.disableMemoryM # Install Java devel 11, 17 21 and binutils # Note: use java scripts are executed to test the scripts but also use-j11.sh in called 3nd place to set is as default version -RUN yum install -y java-11-openjdk-devel java-17-openjdk-devel java-21-openjdk-devel binutils && \ +RUN yum install -y java-11-openjdk-devel java-17-openjdk-devel java-21-openjdk-devel java-25-openjdk-devel binutils && \ yum clean all -y && \ rm -rf /var/cache/yum @@ -36,11 +36,12 @@ RUN chmod +x /usr/local/bin/use-j*.sh && \ chmod ugo+s /usr/local/bin/use-j*.sh && \ sh -c 'chmod ugo+s $(which alternatives)' && \ ls -la /usr/local/bin/use-j*.sh && \ - echo "--- STARTS JDK 11/17/21 TESTS ---" && \ + echo "--- STARTS JDK 11/17/21/25 TESTS ---" && \ use-j11.sh && \ - use-j21.sh && \ use-j17.sh && \ - echo "--- ENDS JDK 11/17/21 TESTS ---" + use-j25.sh && \ + use-j21.sh && \ + echo "--- ENDS JDK 11/17/21/25 TESTS ---" # Set maven (nexus+proxy) and gradle (proxy) settings ENV MAVEN_OPTS="-Duser.home=$HOME" \ From 3e6b1ab3e86de518d9d1e2240f051fc67cdd5c14 Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Fri, 27 Mar 2026 15:19:49 +0100 Subject: [PATCH 05/24] fix java 25 script --- common/jenkins-agents/jdk/docker/use-j25.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/jenkins-agents/jdk/docker/use-j25.sh b/common/jenkins-agents/jdk/docker/use-j25.sh index 68fa02551..c8d5ffce2 100644 --- a/common/jenkins-agents/jdk/docker/use-j25.sh +++ b/common/jenkins-agents/jdk/docker/use-j25.sh @@ -1,7 +1,7 @@ #!/bin/bash JAVA_VERSION="25" -JAVA_HOME_FOLDER=$(ls -lah /usr/lib/jvm | grep "java-${JAVA_VERSION}-openjdk-.*\.x86_64" | awk '{print $NF}' | head -1) +JAVA_HOME_FOLDER=$(ls -lah /usr/lib/jvm | grep "java-${JAVA_VERSION}-openjdk" | awk '{print $NF}' | head -1) function msg_and_exit() { echo "ERROR: ${1}" From 1aafcc0ed33bd673f226cd26f322224b91d35db1 Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Tue, 31 Mar 2026 11:29:25 +0200 Subject: [PATCH 06/24] update Sock QS version --- e2e-spock-geb/files/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e-spock-geb/files/build.gradle b/e2e-spock-geb/files/build.gradle index c37008759..d7f57ff06 100644 --- a/e2e-spock-geb/files/build.gradle +++ b/e2e-spock-geb/files/build.gradle @@ -24,7 +24,7 @@ plugins { id 'com.adarshr.test-logger' version "2.0.0" } -version = '1.0.0' +version = '1.0.1' java { toolchain { From a99dc8005086c2fd0adf5d966ab69d1a7f5f2ab8 Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Tue, 31 Mar 2026 11:36:07 +0200 Subject: [PATCH 07/24] restore spock QS code --- e2e-spock-geb/Jenkinsfile.template | 4 ++-- e2e-spock-geb/files/build.gradle | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/e2e-spock-geb/Jenkinsfile.template b/e2e-spock-geb/Jenkinsfile.template index 6a9d4956a..0cce0f820 100644 --- a/e2e-spock-geb/Jenkinsfile.template +++ b/e2e-spock-geb/Jenkinsfile.template @@ -50,11 +50,11 @@ def stageTest(def context) { // Remember that any test case in the installation folder will be executed in production. def status if (context.environment == 'prod') { - status = sh(script: 'source use-j17.sh && ./gradlew clean testProd --stacktrace --no-daemon && source use-j21.sh', returnStatus: true) + status = sh(script: './gradlew clean testProd --stacktrace --no-daemon', returnStatus: true) junit(testResults:"build/test-results/installation*/*.xml", allowEmptyResults:true) stash(name: "installation-test-reports-junit-xml-${context.componentId}-${context.buildNumber}", includes: 'build/test-results/installation*/*.xml', allowEmpty: true) } else { - status = sh(script: 'source use-j17.sh && ./gradlew clean test --stacktrace --no-daemon && source use-j21.sh', returnStatus: true) + status = sh(script: './gradlew clean test --stacktrace --no-daemon', returnStatus: true) junit(testResults:"build/test-results/installation*/*.xml, build/test-results/integration*/*.xml, build/test-results/acceptance*/*.xml", allowEmptyResults:true) stash(name: "installation-test-reports-junit-xml-${context.componentId}-${context.buildNumber}", includes: 'build/test-results/installation*/*.xml', allowEmpty: true) stash(name: "integration-test-reports-junit-xml-${context.componentId}-${context.buildNumber}", includes: 'build/test-results/integration*/*.xml', allowEmpty: true) diff --git a/e2e-spock-geb/files/build.gradle b/e2e-spock-geb/files/build.gradle index d7f57ff06..c37008759 100644 --- a/e2e-spock-geb/files/build.gradle +++ b/e2e-spock-geb/files/build.gradle @@ -24,7 +24,7 @@ plugins { id 'com.adarshr.test-logger' version "2.0.0" } -version = '1.0.1' +version = '1.0.0' java { toolchain { From 7eacb05b7ddfb1d13a2d76e3565179793390025f Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Tue, 31 Mar 2026 12:07:33 +0200 Subject: [PATCH 08/24] update Scala image to latest openjdk 11 --- be-scala-play/files/docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/be-scala-play/files/docker/Dockerfile b/be-scala-play/files/docker/Dockerfile index ae273af0a..81a98baad 100644 --- a/be-scala-play/files/docker/Dockerfile +++ b/be-scala-play/files/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM registry.access.redhat.com/ubi9/openjdk-11-runtime:1.20 +FROM registry.access.redhat.com/ubi9/openjdk-11-runtime WORKDIR /app COPY lib/* /app/lib/ From 0cbcf660ae6bbd4aba4c5d45969e0ae5e536a0fb Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Tue, 31 Mar 2026 12:11:51 +0200 Subject: [PATCH 09/24] update springboot QS to java 25, spring 4.0.5 and gradlew 9.4.1 --- be-java-springboot/Jenkinsfile | 4 ++-- be-java-springboot/Jenkinsfile.template | 2 +- be-java-springboot/files/docker/Dockerfile | 2 +- .../files/gradle/wrapper/gradle-wrapper.properties | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/be-java-springboot/Jenkinsfile b/be-java-springboot/Jenkinsfile index 27c3f4b68..67bf17236 100644 --- a/be-java-springboot/Jenkinsfile +++ b/be-java-springboot/Jenkinsfile @@ -3,7 +3,7 @@ def odsGitRef = '' def odsImageTag = '' def sharedLibraryRef = '' def agentImageTag = '' -def javaVersion = '21' +def javaVersion = '25' node { odsNamespace = env.ODS_NAMESPACE ?: 'ods' @@ -21,7 +21,7 @@ odsQuickstarterPipeline( stage('Build spring project') { dir(context.targetDir) { - def springBootVersion = '4.0.3' + def springBootVersion = '4.0.5' echo "--- create spring boot (v${springBootVersion}) project via spring initializr ---" def springInitializrUrl = "https://start.spring.io/starter.tgz?" + diff --git a/be-java-springboot/Jenkinsfile.template b/be-java-springboot/Jenkinsfile.template index 5d821ebf8..dbeb650ab 100644 --- a/be-java-springboot/Jenkinsfile.template +++ b/be-java-springboot/Jenkinsfile.template @@ -26,7 +26,7 @@ def stageBuild(def context) { } stage('Build and Unit Test') { withEnv(["TAGVERSION=${context.tagversion}", "NEXUS_HOST=${context.nexusHost}", "NEXUS_USERNAME=${context.nexusUsername}", "NEXUS_PASSWORD=${context.nexusPassword}", "JAVA_OPTS=${javaOpts}","GRADLE_TEST_OPTS=${gradleTestOpts}","ENVIRONMENT=${springBootEnv}"]) { - def status = sh(script: "source use-j21.sh && ./gradlew clean build --stacktrace --no-daemon && source use-j21.sh", returnStatus: true) + def status = sh(script: "source use-j25.sh && ./gradlew clean build --stacktrace --no-daemon && source use-j21.sh", returnStatus: true) if (status != 0) { error "Build failed!" } diff --git a/be-java-springboot/files/docker/Dockerfile b/be-java-springboot/files/docker/Dockerfile index c4c6da9e5..625a19c1d 100644 --- a/be-java-springboot/files/docker/Dockerfile +++ b/be-java-springboot/files/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM registry.access.redhat.com/ubi9/openjdk-21 +FROM registry.access.redhat.com/ubi10/openjdk-25-runtime # Enforce runtime protection for log4j2 CVE-2021-44228 (affected version from 2.0 to 2.14.1) in the affected vesion is used. # This applies for version from 2.10 and not below. diff --git a/be-java-springboot/files/gradle/wrapper/gradle-wrapper.properties b/be-java-springboot/files/gradle/wrapper/gradle-wrapper.properties index ac57dd155..221c4f982 100644 --- a/be-java-springboot/files/gradle/wrapper/gradle-wrapper.properties +++ b/be-java-springboot/files/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From f0d1febbc5a18e5ec4f5950acf02761a75ca5d41 Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Wed, 1 Apr 2026 10:09:02 +0200 Subject: [PATCH 10/24] add warning for subprocess execution in Java version switch scripts --- common/jenkins-agents/jdk/docker/use-j11.sh | 13 +++++++++++++ common/jenkins-agents/jdk/docker/use-j17.sh | 15 ++++++++++++++- common/jenkins-agents/jdk/docker/use-j21.sh | 15 ++++++++++++++- common/jenkins-agents/jdk/docker/use-j25.sh | 15 ++++++++++++++- 4 files changed, 55 insertions(+), 3 deletions(-) diff --git a/common/jenkins-agents/jdk/docker/use-j11.sh b/common/jenkins-agents/jdk/docker/use-j11.sh index bb6fb927d..68b663aa6 100644 --- a/common/jenkins-agents/jdk/docker/use-j11.sh +++ b/common/jenkins-agents/jdk/docker/use-j11.sh @@ -37,3 +37,16 @@ else msg_and_exit "Cannot configure JAVA_HOME environment variable to ${JAVA_HOME}" fi echo "JAVA_HOME: $JAVA_HOME" + +# If not sourced, print the export command so parent shell can eval it +if [ "${BASH_SOURCE[0]}" == "${0}" ]; then + echo "" + echo "=================================================================================" + echo "WARNING: Script executed as subprocess - JAVA_HOME will NOT persist!" + echo "-----" + echo "Usage Options:" + echo " Option 1 (source): source ${BASH_SOURCE[0]}" + echo " Option 2 (dot): . ${BASH_SOURCE[0]}" + echo "=================================================================================" + echo "" +fi diff --git a/common/jenkins-agents/jdk/docker/use-j17.sh b/common/jenkins-agents/jdk/docker/use-j17.sh index 0f0bbe608..f07446e3b 100644 --- a/common/jenkins-agents/jdk/docker/use-j17.sh +++ b/common/jenkins-agents/jdk/docker/use-j17.sh @@ -36,4 +36,17 @@ if [ -d ${JAVA_HOME}/bin/ ]; then else msg_and_exit "Cannot configure JAVA_HOME environment variable to ${JAVA_HOME}" fi -echo "JAVA_HOME: $JAVA_HOME" \ No newline at end of file +echo "JAVA_HOME: $JAVA_HOME" + +# If not sourced, print the export command so parent shell can eval it +if [ "${BASH_SOURCE[0]}" == "${0}" ]; then + echo "" + echo "=================================================================================" + echo "WARNING: Script executed as subprocess - JAVA_HOME will NOT persist!" + echo "-----" + echo "Usage Options:" + echo " Option 1 (source): source ${BASH_SOURCE[0]}" + echo " Option 2 (dot): . ${BASH_SOURCE[0]}" + echo "=================================================================================" + echo "" +fi \ No newline at end of file diff --git a/common/jenkins-agents/jdk/docker/use-j21.sh b/common/jenkins-agents/jdk/docker/use-j21.sh index 85434e488..c83fab3ae 100644 --- a/common/jenkins-agents/jdk/docker/use-j21.sh +++ b/common/jenkins-agents/jdk/docker/use-j21.sh @@ -35,4 +35,17 @@ if [ -d ${JAVA_HOME}/bin/ ]; then else msg_and_exit "Cannot configure JAVA_HOME environment variable to ${JAVA_HOME}" fi -echo "JAVA_HOME: $JAVA_HOME" \ No newline at end of file +echo "JAVA_HOME: $JAVA_HOME" + +# If not sourced, print the export command so parent shell can eval it +if [ "${BASH_SOURCE[0]}" == "${0}" ]; then + echo "" + echo "=================================================================================" + echo "WARNING: Script executed as subprocess - JAVA_HOME will NOT persist!" + echo "-----" + echo "Usage Options:" + echo " Option 1 (source): source ${BASH_SOURCE[0]}" + echo " Option 2 (dot): . ${BASH_SOURCE[0]}" + echo "=================================================================================" + echo "" +fi \ No newline at end of file diff --git a/common/jenkins-agents/jdk/docker/use-j25.sh b/common/jenkins-agents/jdk/docker/use-j25.sh index c8d5ffce2..7cad155c2 100644 --- a/common/jenkins-agents/jdk/docker/use-j25.sh +++ b/common/jenkins-agents/jdk/docker/use-j25.sh @@ -35,4 +35,17 @@ if [ -d ${JAVA_HOME}/bin/ ]; then else msg_and_exit "Cannot configure JAVA_HOME environment variable to ${JAVA_HOME}" fi -echo "JAVA_HOME: $JAVA_HOME" \ No newline at end of file +echo "JAVA_HOME: $JAVA_HOME" + +# If not sourced, print the export command so parent shell can eval it +if [ "${BASH_SOURCE[0]}" == "${0}" ]; then + echo "" + echo "=================================================================================" + echo "WARNING: Script executed as subprocess - JAVA_HOME will NOT persist!" + echo "-----" + echo "Usage Options:" + echo " Option 1 (source): source ${BASH_SOURCE[0]}" + echo " Option 2 (dot): . ${BASH_SOURCE[0]}" + echo "=================================================================================" + echo "" +fi \ No newline at end of file From f5590e561e4a4d3cdd594c5207d89f0e27dd0873 Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Wed, 1 Apr 2026 10:49:21 +0200 Subject: [PATCH 11/24] add warnings for subprocess execution in Java version switch scripts and update script syntax for consistency --- be-java-springboot/Jenkinsfile.template | 2 +- be-scala-play/Jenkinsfile | 2 +- be-scala-play/Jenkinsfile.template | 2 +- common/jenkins-agents/scala/docker/use-j11.sh | 13 +++++++++++++ common/jenkins-agents/scala/docker/use-j17.sh | 15 ++++++++++++++- 5 files changed, 30 insertions(+), 4 deletions(-) diff --git a/be-java-springboot/Jenkinsfile.template b/be-java-springboot/Jenkinsfile.template index dbeb650ab..d7e20b430 100644 --- a/be-java-springboot/Jenkinsfile.template +++ b/be-java-springboot/Jenkinsfile.template @@ -26,7 +26,7 @@ def stageBuild(def context) { } stage('Build and Unit Test') { withEnv(["TAGVERSION=${context.tagversion}", "NEXUS_HOST=${context.nexusHost}", "NEXUS_USERNAME=${context.nexusUsername}", "NEXUS_PASSWORD=${context.nexusPassword}", "JAVA_OPTS=${javaOpts}","GRADLE_TEST_OPTS=${gradleTestOpts}","ENVIRONMENT=${springBootEnv}"]) { - def status = sh(script: "source use-j25.sh && ./gradlew clean build --stacktrace --no-daemon && source use-j21.sh", returnStatus: true) + def status = sh(script: 'source use-j25.sh && ./gradlew clean build --stacktrace --no-daemon && source use-j21.sh', returnStatus: true) if (status != 0) { error "Build failed!" } diff --git a/be-scala-play/Jenkinsfile b/be-scala-play/Jenkinsfile index 28d9ad46d..471d023e6 100644 --- a/be-scala-play/Jenkinsfile +++ b/be-scala-play/Jenkinsfile @@ -19,7 +19,7 @@ odsQuickstarterPipeline( ) { context -> stage("init scala play project") { - sh "source use-j11.sh && sbt -no-colors -v new file://${context.sourceDir}/be-scala-play.g8 --name=${context.componentId} --secret=\$(uuidgen) && source use-j21.sh" + sh 'source use-j11.sh && sbt -no-colors -v new file://${context.sourceDir}/be-scala-play.g8 --name=${context.componentId} --secret=\$(uuidgen) && source use-j21.sh' } odsQuickstarterStageCopyFiles(context) diff --git a/be-scala-play/Jenkinsfile.template b/be-scala-play/Jenkinsfile.template index 9e564825c..a63c5fa5d 100644 --- a/be-scala-play/Jenkinsfile.template +++ b/be-scala-play/Jenkinsfile.template @@ -22,7 +22,7 @@ odsComponentPipeline( def stageBuild(def context) { stage('Build and Unit Test') { withEnv(["TAGVERSION=${context.tagversion}"]){ - def status = sh(script: "source use-j11.sh && sbt -v clean scalafmtSbtCheck scalafmtCheckAll coverage test coverageReport coverageOff compile:clean copyDockerFiles && source use-j21.sh", returnStatus: true) + def status = sh(script: 'source use-j11.sh && sbt -v clean scalafmtSbtCheck scalafmtCheckAll coverage test coverageReport coverageOff compile:clean copyDockerFiles && source use-j21.sh', returnStatus: true) if (status != 0) { error "Build failed!" } diff --git a/common/jenkins-agents/scala/docker/use-j11.sh b/common/jenkins-agents/scala/docker/use-j11.sh index 1821e0f99..7a0246f57 100644 --- a/common/jenkins-agents/scala/docker/use-j11.sh +++ b/common/jenkins-agents/scala/docker/use-j11.sh @@ -36,3 +36,16 @@ else msg_and_exit "Cannot configure JAVA_HOME environment variable to ${JAVA_HOME}" fi echo "JAVA_HOME: $JAVA_HOME" + +# If not sourced, print the export command so parent shell can eval it +if [ "${BASH_SOURCE[0]}" == "${0}" ]; then + echo "" + echo "=================================================================================" + echo "WARNING: Script executed as subprocess - JAVA_HOME will NOT persist!" + echo "-----" + echo "Usage Options:" + echo " Option 1 (source): source ${BASH_SOURCE[0]}" + echo " Option 2 (dot): . ${BASH_SOURCE[0]}" + echo "=================================================================================" + echo "" +fi \ No newline at end of file diff --git a/common/jenkins-agents/scala/docker/use-j17.sh b/common/jenkins-agents/scala/docker/use-j17.sh index c2dc8f218..0c0779b3b 100644 --- a/common/jenkins-agents/scala/docker/use-j17.sh +++ b/common/jenkins-agents/scala/docker/use-j17.sh @@ -35,4 +35,17 @@ if [ -d ${JAVA_HOME}/bin/ ]; then else msg_and_exit "Cannot configure JAVA_HOME environment variable to ${JAVA_HOME}" fi -echo "JAVA_HOME: $JAVA_HOME" \ No newline at end of file +echo "JAVA_HOME: $JAVA_HOME" + +# If not sourced, print the export command so parent shell can eval it +if [ "${BASH_SOURCE[0]}" == "${0}" ]; then + echo "" + echo "=================================================================================" + echo "WARNING: Script executed as subprocess - JAVA_HOME will NOT persist!" + echo "-----" + echo "Usage Options:" + echo " Option 1 (source): source ${BASH_SOURCE[0]}" + echo " Option 2 (dot): . ${BASH_SOURCE[0]}" + echo "=================================================================================" + echo "" +fi \ No newline at end of file From 2b962b4d22b642b8516223d16a303109a185a7a8 Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Wed, 1 Apr 2026 10:52:37 +0200 Subject: [PATCH 12/24] update Dockerfiles to use 'source' for script execution in JDK test commands --- common/jenkins-agents/jdk/docker/Dockerfile.ubi8 | 8 ++++---- common/jenkins-agents/jdk/docker/Dockerfile.ubi9 | 8 ++++---- common/jenkins-agents/scala/docker/Dockerfile.ubi8 | 6 +++--- common/jenkins-agents/scala/docker/Dockerfile.ubi9 | 6 +++--- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/common/jenkins-agents/jdk/docker/Dockerfile.ubi8 b/common/jenkins-agents/jdk/docker/Dockerfile.ubi8 index f4e0f1232..0c5008cac 100644 --- a/common/jenkins-agents/jdk/docker/Dockerfile.ubi8 +++ b/common/jenkins-agents/jdk/docker/Dockerfile.ubi8 @@ -37,10 +37,10 @@ RUN chmod +x /usr/local/bin/use-j*.sh && \ sh -c 'chmod ugo+s $(which alternatives)' && \ ls -la /usr/local/bin/use-j*.sh && \ echo "--- STARTS JDK 11/17/21/25 TESTS ---" && \ - use-j11.sh && \ - use-j17.sh && \ - use-j25.sh && \ - use-j21.sh && \ + source use-j11.sh && \ + source use-j17.sh && \ + source use-j25.sh && \ + source use-j21.sh && \ echo "--- ENDS JDK 11/17/21/25 TESTS ---" # Set maven (nexus+proxy) and gradle (proxy) settings diff --git a/common/jenkins-agents/jdk/docker/Dockerfile.ubi9 b/common/jenkins-agents/jdk/docker/Dockerfile.ubi9 index a65023467..da49eba71 100644 --- a/common/jenkins-agents/jdk/docker/Dockerfile.ubi9 +++ b/common/jenkins-agents/jdk/docker/Dockerfile.ubi9 @@ -37,10 +37,10 @@ RUN chmod +x /usr/local/bin/use-j*.sh && \ sh -c 'chmod ugo+s $(which alternatives)' && \ ls -la /usr/local/bin/use-j*.sh && \ echo "--- STARTS JDK 11/17/21/25 TESTS ---" && \ - use-j11.sh && \ - use-j17.sh && \ - use-j25.sh && \ - use-j21.sh && \ + source use-j11.sh && \ + source use-j17.sh && \ + source use-j25.sh && \ + source use-j21.sh && \ echo "--- ENDS JDK 11/17/21/25 TESTS ---" # Set maven (nexus+proxy) and gradle (proxy) settings diff --git a/common/jenkins-agents/scala/docker/Dockerfile.ubi8 b/common/jenkins-agents/scala/docker/Dockerfile.ubi8 index a7f7cfe2a..6d802c95a 100644 --- a/common/jenkins-agents/scala/docker/Dockerfile.ubi8 +++ b/common/jenkins-agents/scala/docker/Dockerfile.ubi8 @@ -26,9 +26,9 @@ RUN chmod +x /usr/local/bin/use-j*.sh && \ sh -c 'chmod ugo+s $(which alternatives)' && \ ls -la /usr/local/bin/use-j*.sh && \ echo "--- STARTS JDK 11/17/21 TESTS ---" && \ - use-j11.sh && \ - use-j17.sh && \ - use-j21.sh && \ + source use-j11.sh && \ + source use-j17.sh && \ + source use-j21.sh && \ echo "--- ENDS JDK 11/17/21 TESTS ---" COPY sbtconfig/repositories $HOME/.sbt/repositories diff --git a/common/jenkins-agents/scala/docker/Dockerfile.ubi9 b/common/jenkins-agents/scala/docker/Dockerfile.ubi9 index a7f7cfe2a..6d802c95a 100644 --- a/common/jenkins-agents/scala/docker/Dockerfile.ubi9 +++ b/common/jenkins-agents/scala/docker/Dockerfile.ubi9 @@ -26,9 +26,9 @@ RUN chmod +x /usr/local/bin/use-j*.sh && \ sh -c 'chmod ugo+s $(which alternatives)' && \ ls -la /usr/local/bin/use-j*.sh && \ echo "--- STARTS JDK 11/17/21 TESTS ---" && \ - use-j11.sh && \ - use-j17.sh && \ - use-j21.sh && \ + source use-j11.sh && \ + source use-j17.sh && \ + source use-j21.sh && \ echo "--- ENDS JDK 11/17/21 TESTS ---" COPY sbtconfig/repositories $HOME/.sbt/repositories From 09a16bb24657eb5158b5955d457924368726391c Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Thu, 16 Apr 2026 09:28:32 +0200 Subject: [PATCH 13/24] test build agent base and store it for later jobs --- .../continuous-integration-workflow.yml | 148 ++++++++++++++++++ 1 file changed, 148 insertions(+) diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index 8d73fddb2..a5685a79c 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -2,13 +2,51 @@ name: Continous Integration Tests on: [ push, pull_request ] jobs: + jenkins-agent-base-ubi8: + name: Jenkins agent base (UBI8) + runs-on: ubuntu-22.04 + steps: + - + name: Checkout ods-core repository + uses: actions/checkout@v4.2.2 + with: + repository: ${{ github.repository_owner }}/ods-core + token: ${{ secrets.GH_REPO_READ_TOKEN || github.token }} + path: ods-core + - + name: Build base docker image + working-directory: ods-core/jenkins/agent-base + run: | + docker build --tag opendevstackorg/ods-jenkins-agent-base-ubi8:latest --file Dockerfile.ubi8 . + - + name: Save base image as artifact + run: | + docker save --output ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar opendevstackorg/ods-jenkins-agent-base-ubi8:latest + - + name: Upload base image artifact + uses: actions/upload-artifact@v4.4.3 + with: + name: jenkins-agent-base-ubi8 + path: ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar + jenkins-agent-golang-ubi8: name: Jenkins agent Go (UBI8) runs-on: ubuntu-22.04 + needs: [ jenkins-agent-base-ubi8 ] steps: - name: Checkout repository uses: actions/checkout@v4.2.2 + - + name: Download base image artifact + uses: actions/download-artifact@v4.1.8 + with: + name: jenkins-agent-base-ubi8 + path: ${{ runner.temp }} + - + name: Load base image + run: | + docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar - name: Build docker image working-directory: common/jenkins-agents/golang/docker @@ -21,10 +59,21 @@ jobs: jenkins-agent-jdk-ubi8: name: Jenkins agent JDK (UBI8) runs-on: ubuntu-22.04 + needs: [ jenkins-agent-base-ubi8 ] steps: - name: Checkout repository uses: actions/checkout@v4.2.2 + - + name: Download base image artifact + uses: actions/download-artifact@v4.1.8 + with: + name: jenkins-agent-base-ubi8 + path: ${{ runner.temp }} + - + name: Load base image + run: | + docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar - name: Build docker image working-directory: common/jenkins-agents/jdk/docker @@ -38,10 +87,21 @@ jobs: jenkins-agent-nodejs18-ubi8: name: Jenkins agent NodeJS 18 (UBI8) runs-on: ubuntu-22.04 + needs: [ jenkins-agent-base-ubi8 ] steps: - name: Checkout repository uses: actions/checkout@v4.2.2 + - + name: Download base image artifact + uses: actions/download-artifact@v4.1.8 + with: + name: jenkins-agent-base-ubi8 + path: ${{ runner.temp }} + - + name: Load base image + run: | + docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar - name: Build docker image working-directory: common/jenkins-agents/nodejs18/docker @@ -54,10 +114,21 @@ jobs: jenkins-agent-nodejs20-ubi8: name: Jenkins agent NodeJS 20 (UBI8) runs-on: ubuntu-22.04 + needs: [ jenkins-agent-base-ubi8 ] steps: - name: Checkout repository uses: actions/checkout@v4.2.2 + - + name: Download base image artifact + uses: actions/download-artifact@v4.1.8 + with: + name: jenkins-agent-base-ubi8 + path: ${{ runner.temp }} + - + name: Load base image + run: | + docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar - name: Build docker image working-directory: common/jenkins-agents/nodejs20/docker @@ -70,10 +141,21 @@ jobs: jenkins-agent-nodejs22-ubi8: name: Jenkins agent NodeJS 22 (UBI8) runs-on: ubuntu-22.04 + needs: [ jenkins-agent-base-ubi8 ] steps: - name: Checkout repository uses: actions/checkout@v4.2.2 + - + name: Download base image artifact + uses: actions/download-artifact@v4.1.8 + with: + name: jenkins-agent-base-ubi8 + path: ${{ runner.temp }} + - + name: Load base image + run: | + docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar - name: Build docker image working-directory: common/jenkins-agents/nodejs22/docker @@ -86,10 +168,21 @@ jobs: jenkins-agent-nodejs24-ubi8: name: Jenkins agent NodeJS 24 (UBI8) runs-on: ubuntu-22.04 + needs: [ jenkins-agent-base-ubi8 ] steps: - name: Checkout repository uses: actions/checkout@v4.2.2 + - + name: Download base image artifact + uses: actions/download-artifact@v4.1.8 + with: + name: jenkins-agent-base-ubi8 + path: ${{ runner.temp }} + - + name: Load base image + run: | + docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar - name: Build docker image working-directory: common/jenkins-agents/nodejs24/docker @@ -102,10 +195,21 @@ jobs: jenkins-agent-python-ubi8: name: Jenkins agent Python (UBI8) runs-on: ubuntu-22.04 + needs: [ jenkins-agent-base-ubi8 ] steps: - name: Checkout repository uses: actions/checkout@v4.2.2 + - + name: Download base image artifact + uses: actions/download-artifact@v4.1.8 + with: + name: jenkins-agent-base-ubi8 + path: ${{ runner.temp }} + - + name: Load base image + run: | + docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar - name: Build docker image working-directory: common/jenkins-agents/python/docker @@ -115,10 +219,21 @@ jobs: jenkins-agent-rust-ubi8: name: Jenkins agent Rust (UBI8) runs-on: ubuntu-22.04 + needs: [ jenkins-agent-base-ubi8 ] steps: - name: Checkout repository uses: actions/checkout@v4.2.2 + - + name: Download base image artifact + uses: actions/download-artifact@v4.1.8 + with: + name: jenkins-agent-base-ubi8 + path: ${{ runner.temp }} + - + name: Load base image + run: | + docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar - name: Build docker image working-directory: common/jenkins-agents/rust/docker @@ -135,10 +250,21 @@ jobs: jenkins-agent-terraform-2306-ubi8: name: Jenkins agent Terraform 2306 (UBI8) runs-on: ubuntu-22.04 + needs: [ jenkins-agent-base-ubi8 ] steps: - name: Checkout repository uses: actions/checkout@v4.2.2 + - + name: Download base image artifact + uses: actions/download-artifact@v4.1.8 + with: + name: jenkins-agent-base-ubi8 + path: ${{ runner.temp }} + - + name: Load base image + run: | + docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar - name: Build docker image working-directory: common/jenkins-agents/terraform-2306/docker @@ -152,10 +278,21 @@ jobs: jenkins-agent-terraform-2408-ubi8: name: Jenkins agent Terraform 2408 (UBI8) runs-on: ubuntu-22.04 + needs: [ jenkins-agent-base-ubi8 ] steps: - name: Checkout repository uses: actions/checkout@v4.2.2 + - + name: Download base image artifact + uses: actions/download-artifact@v4.1.8 + with: + name: jenkins-agent-base-ubi8 + path: ${{ runner.temp }} + - + name: Load base image + run: | + docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar - name: Build docker image working-directory: common/jenkins-agents/terraform-2408/docker @@ -169,10 +306,21 @@ jobs: jenkins-agent-scala-ubi8: name: Jenkins agent Scala (UBI8) runs-on: ubuntu-22.04 + needs: [ jenkins-agent-base-ubi8 ] steps: - name: Checkout repository uses: actions/checkout@v4.2.2 + - + name: Download base image artifact + uses: actions/download-artifact@v4.1.8 + with: + name: jenkins-agent-base-ubi8 + path: ${{ runner.temp }} + - + name: Load base image + run: | + docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar - name: Build docker image working-directory: common/jenkins-agents/scala/docker From a01f39cb7492a71e98ab196a73b30750e70071db Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Thu, 16 Apr 2026 09:51:57 +0200 Subject: [PATCH 14/24] cleanup artifact at the end --- .../workflows/continuous-integration-workflow.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index a5685a79c..7fa1417da 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -330,3 +330,15 @@ jobs: --build-arg nexusUsername=developer \ --build-arg nexusPassword=s3cr3t \ . + + cleanup-artifact: + name: Cleanup base image artifact + runs-on: ubuntu-22.04 + needs: [ jenkins-agent-golang-ubi8, jenkins-agent-jdk-ubi8, jenkins-agent-nodejs18-ubi8, jenkins-agent-nodejs20-ubi8, jenkins-agent-nodejs22-ubi8, jenkins-agent-nodejs24-ubi8, jenkins-agent-python-ubi8, jenkins-agent-rust-ubi8, jenkins-agent-terraform-2306-ubi8, jenkins-agent-terraform-2408-ubi8, jenkins-agent-scala-ubi8 ] + if: always() + steps: + - + name: Delete artifact + uses: geekyeggo/delete-artifact@v2 + with: + name: jenkins-agent-base-ubi8 From d742fded69d47023553bd38f602e8cd84a321b72 Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Thu, 16 Apr 2026 10:23:40 +0200 Subject: [PATCH 15/24] replace artifact deletion step with GitHub script for better error handling and logging --- .../continuous-integration-workflow.yml | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index 7fa1417da..61f894a1d 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -339,6 +339,27 @@ jobs: steps: - name: Delete artifact - uses: geekyeggo/delete-artifact@v2 + uses: actions/github-script@v7 with: - name: jenkins-agent-base-ubi8 + script: | + try { + const artifacts = await github.rest.actions.listArtifactsForRepo({ + owner: context.repo.owner, + repo: context.repo.repo, + name: 'jenkins-agent-base-ubi8' + }); + if (artifacts.data.artifacts.length > 0) { + for (const artifact of artifacts.data.artifacts) { + await github.rest.actions.deleteArtifact({ + owner: context.repo.owner, + repo: context.repo.repo, + artifact_id: artifact.id, + }); + console.log(`Deleted artifact: ${artifact.name}`); + } + } else { + console.log('No artifacts found to delete'); + } + } catch (error) { + console.log(`Warning: Failed to delete artifact - ${error.message}`); + } From 6983121baabc239e8646809ed9ab3d6664a4afb6 Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Thu, 16 Apr 2026 16:21:10 +0200 Subject: [PATCH 16/24] remove ubi8 dockerfiles and code Update agent base to ubi9 --- .../golang/docker/Dockerfile.ubi8 | 27 --- .../golang/docker/Dockerfile.ubi9 | 2 +- .../jenkins-agents/jdk/docker/Dockerfile.ubi8 | 86 ------- .../jenkins-agents/jdk/docker/Dockerfile.ubi9 | 2 +- .../nodejs18/docker/Dockerfile.ubi8 | 63 ----- .../nodejs18/docker/Dockerfile.ubi9 | 2 +- .../docker/yum.repos.d/almalinux8.repo | 13 -- .../nodejs20/docker/Dockerfile.ubi8 | 63 ----- .../nodejs20/docker/Dockerfile.ubi9 | 2 +- .../docker/yum.repos.d/almalinux8.repo | 13 -- .../nodejs22/docker/Dockerfile.ubi8 | 63 ----- .../nodejs22/docker/Dockerfile.ubi9 | 2 +- .../docker/yum.repos.d/almalinux8.repo | 13 -- .../nodejs24/docker/Dockerfile.ubi8 | 63 ----- .../nodejs24/docker/Dockerfile.ubi9 | 2 +- .../docker/yum.repos.d/almalinux8.repo | 13 -- .../python/docker/Dockerfile.ubi8 | 37 --- .../python/docker/Dockerfile.ubi9 | 2 +- .../rust/docker/Dockerfile.ubi8 | 44 ---- .../rust/docker/Dockerfile.ubi9 | 2 +- .../scala/docker/Dockerfile.ubi8 | 69 ------ .../scala/docker/Dockerfile.ubi9 | 2 +- .../terraform-2306/docker/Dockerfile.ubi8 | 204 ---------------- .../terraform-2306/docker/Dockerfile.ubi9 | 2 +- .../docker/yum.repos.d/almalinux8.repo | 13 -- .../terraform-2408/docker/Dockerfile.ubi8 | 218 ------------------ .../terraform-2408/docker/Dockerfile.ubi9 | 2 +- .../docker/yum.repos.d/almalinux8.repo | 13 -- 28 files changed, 11 insertions(+), 1026 deletions(-) delete mode 100644 common/jenkins-agents/golang/docker/Dockerfile.ubi8 delete mode 100644 common/jenkins-agents/jdk/docker/Dockerfile.ubi8 delete mode 100644 common/jenkins-agents/nodejs18/docker/Dockerfile.ubi8 delete mode 100644 common/jenkins-agents/nodejs18/docker/yum.repos.d/almalinux8.repo delete mode 100644 common/jenkins-agents/nodejs20/docker/Dockerfile.ubi8 delete mode 100644 common/jenkins-agents/nodejs20/docker/yum.repos.d/almalinux8.repo delete mode 100644 common/jenkins-agents/nodejs22/docker/Dockerfile.ubi8 delete mode 100644 common/jenkins-agents/nodejs22/docker/yum.repos.d/almalinux8.repo delete mode 100644 common/jenkins-agents/nodejs24/docker/Dockerfile.ubi8 delete mode 100644 common/jenkins-agents/nodejs24/docker/yum.repos.d/almalinux8.repo delete mode 100644 common/jenkins-agents/python/docker/Dockerfile.ubi8 delete mode 100644 common/jenkins-agents/rust/docker/Dockerfile.ubi8 delete mode 100644 common/jenkins-agents/scala/docker/Dockerfile.ubi8 delete mode 100644 common/jenkins-agents/terraform-2306/docker/Dockerfile.ubi8 delete mode 100644 common/jenkins-agents/terraform-2306/docker/yum.repos.d/almalinux8.repo delete mode 100644 common/jenkins-agents/terraform-2408/docker/Dockerfile.ubi8 delete mode 100644 common/jenkins-agents/terraform-2408/docker/yum.repos.d/almalinux8.repo diff --git a/common/jenkins-agents/golang/docker/Dockerfile.ubi8 b/common/jenkins-agents/golang/docker/Dockerfile.ubi8 deleted file mode 100644 index 08e885aa7..000000000 --- a/common/jenkins-agents/golang/docker/Dockerfile.ubi8 +++ /dev/null @@ -1,27 +0,0 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest - -ARG goDistributionUrl -ARG golangciVersion - -RUN yum install -y gcc gcc-c++ - -RUN cd /tmp && \ - curl -LfSso /tmp/go.tar.gz $goDistributionUrl && \ - tar -C /usr/local -xzf go.tar.gz && \ - rm -f /tmp/go.tar.gz && \ - cd - && \ - mkdir /go && \ - /usr/local/go/bin/go version - -ENV PATH $PATH:/usr/local/go/bin -ENV GOBIN /usr/local/bin - -COPY install-golangci-lint.sh /tmp/install-golangci-lint.sh -RUN /tmp/install-golangci-lint.sh -b /usr/local/bin $golangciVersion && \ - rm -f /tmp/install-golangci-lint.sh - -RUN go install github.com/jstemmer/go-junit-report/v2@v2.1.0 - -RUN mkdir -p /home/jenkins/go && chmod -R g+w /home/jenkins - -WORKDIR /go diff --git a/common/jenkins-agents/golang/docker/Dockerfile.ubi9 b/common/jenkins-agents/golang/docker/Dockerfile.ubi9 index 08e885aa7..5f3fc931e 100644 --- a/common/jenkins-agents/golang/docker/Dockerfile.ubi9 +++ b/common/jenkins-agents/golang/docker/Dockerfile.ubi9 @@ -1,4 +1,4 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest +FROM opendevstackorg/ods-jenkins-agent-base-ubi9:latest ARG goDistributionUrl ARG golangciVersion diff --git a/common/jenkins-agents/jdk/docker/Dockerfile.ubi8 b/common/jenkins-agents/jdk/docker/Dockerfile.ubi8 deleted file mode 100644 index 0c5008cac..000000000 --- a/common/jenkins-agents/jdk/docker/Dockerfile.ubi8 +++ /dev/null @@ -1,86 +0,0 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest - -# Labels consumed by Red Hat build service -LABEL com.redhat.component="jenkins-agent-jdk-35-rhel7-container" \ - name="openshift4/jenkins-agent-jdk-35-rhel7" \ - architecture="x86_64" \ - io.k8s.display-name="Jenkins Agent JDK" \ - io.k8s.description="The jenkins agent jdk image has java 11, 17 and 21 installed on top of the jenkins agent base image." \ - io.openshift.tags="openshift,jenkins,agent,jdk" \ - maintainer="openshift-dev-services+jenkins@redhat.com" - -ARG nexusUrl -ARG nexusUsername -ARG nexusPassword - -ENV LANG=en_US.UTF-8 \ - LC_ALL=en_US.UTF-8 - -# Container support is now integrated in Java 11, the +UseCGroupMemoryLimitForHeap option has been pruned -ENV JAVA_TOOL_OPTIONS="-XX:+UnlockExperimentalVMOptions -Dsun.zip.disableMemoryMapping=true" - -# Workaround we use when running behind proxy -# Basically we put the proxy certificate in certs folder -# COPY certs/* /etc/pki/ca-trust/source/anchors/ -# RUN update-ca-trust force-enable && update-ca-trust extract - -# Install Java devel 11, 17 21 and binutils -# Note: use java scripts are executed to test the scripts but also use-j11.sh in called 3nd place to set is as default version -RUN yum install -y java-11-openjdk-devel java-17-openjdk-devel java-21-openjdk-devel java-25-openjdk-devel binutils && \ - yum clean all -y && \ - rm -rf /var/cache/yum - -# Copy and use java scripts. -COPY use-j*.sh /usr/local/bin/ -RUN chmod +x /usr/local/bin/use-j*.sh && \ - chmod ugo+s /usr/local/bin/use-j*.sh && \ - sh -c 'chmod ugo+s $(which alternatives)' && \ - ls -la /usr/local/bin/use-j*.sh && \ - echo "--- STARTS JDK 11/17/21/25 TESTS ---" && \ - source use-j11.sh && \ - source use-j17.sh && \ - source use-j25.sh && \ - source use-j21.sh && \ - echo "--- ENDS JDK 11/17/21/25 TESTS ---" - -# Set maven (nexus+proxy) and gradle (proxy) settings -ENV MAVEN_OPTS="-Duser.home=$HOME" \ - GRADLE_USER_HOME=/home/jenkins/.gradle -# TODO: Remove MAVEN_OPTS env once cri-o pushes the $HOME variable in /etc/passwd -ADD .m2/settings.xml $HOME/.m2/ -COPY set_maven_proxy.sh /tmp/set_maven_proxy.sh -COPY set_gradle_proxy.sh /tmp/set_gradle_proxy.sh -RUN mkdir -p $GRADLE_USER_HOME && \ - chmod +x /tmp/set_gradle_proxy.sh && \ - /tmp/set_gradle_proxy.sh && \ - mkdir -p $HOME/.m2 && \ - chmod +x /tmp/set_maven_proxy.sh && \ - mv $HOME/.m2/settings.xml $HOME/.m2/settings.xml.orig && \ - /tmp/set_maven_proxy.sh && \ - xpr=$(cat /tmp/mvn_proxy) && \ - xpr="${xpr//\//\\/}" && \ - xpr="${xpr//|/\\|}" && \ - cat $HOME/.m2/settings.xml.orig | sed -e "s||$xpr|g" > $HOME/.m2/settings.xml && \ - sed -i "s/__NEXUS_USER/$nexusUsername/gi" $HOME/.m2/settings.xml && \ - sed -i "s/__NEXUS_PW/$nexusPassword/gi" $HOME/.m2/settings.xml && \ - sed -i "s|__NEXUS_URL|$nexusUrl|gi" $HOME/.m2/settings.xml && \ - cat $HOME/.m2/settings.xml - -RUN chown -R 1001:0 $HOME && \ - chmod -R g+rwX $HOME && \ - chmod -c 666 /etc/pki/ca-trust/extracted/java/cacerts && \ - ls -la /etc/pki/ca-trust/extracted/java/cacerts - -# temporary java version switch bugfix -USER root -RUN chgrp -R 0 /var/lib/alternatives && \ - chmod -R g=u /var/lib/alternatives && \ - chgrp -R 0 /etc/alternatives && \ - chmod -R g=u /etc/alternatives && \ - chmod -R u+w /usr/bin && \ - chgrp -R 0 /usr/bin && \ - chmod -R g=u /usr/bin && \ - chgrp -R 0 /usr/share/man && \ - chmod -R g=u /usr/share/man - -USER 1001 diff --git a/common/jenkins-agents/jdk/docker/Dockerfile.ubi9 b/common/jenkins-agents/jdk/docker/Dockerfile.ubi9 index da49eba71..7350817d0 100644 --- a/common/jenkins-agents/jdk/docker/Dockerfile.ubi9 +++ b/common/jenkins-agents/jdk/docker/Dockerfile.ubi9 @@ -1,4 +1,4 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest +FROM opendevstackorg/ods-jenkins-agent-base-ubi9:latest # Labels consumed by Red Hat build service LABEL com.redhat.component="jenkins-agent-jdk-rhel9-container" \ diff --git a/common/jenkins-agents/nodejs18/docker/Dockerfile.ubi8 b/common/jenkins-agents/nodejs18/docker/Dockerfile.ubi8 deleted file mode 100644 index 401d32c57..000000000 --- a/common/jenkins-agents/nodejs18/docker/Dockerfile.ubi8 +++ /dev/null @@ -1,63 +0,0 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest - -# Labels consumed by Red Hat build service -LABEL com.redhat.component="jenkins-agent-nodejs-rhel8-container" \ - name="openshift4/jenkins-agent-nodejs-rhel8" \ - architecture="x86_64" \ - io.k8s.display-name="Jenkins Agent Nodejs" \ - io.k8s.description="The jenkins agent nodejs image has the nodejs tools on top of the jenkins agent base image." \ - io.openshift.tags="openshift,jenkins,agent,nodejs" \ - maintainer="openshift-dev-services+jenkins@redhat.com" - -ARG nexusUrl -ARG nexusAuth - -ENV NODEJS_VERSION=18 \ - YARN_VERSION=1.22.18 \ - NPM_CONFIG_PREFIX=$HOME/.npm-global \ - NPM_CONFIG_CAFILE=/etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem \ - PATH=$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$HOME/node_modules/.bin/:$HOME/.npm-global/bin/:$PATH \ - LANG=en_US.UTF-8 \ - LC_ALL=en_US.UTF-8 - -COPY contrib/bin/configure-agent /usr/local/bin/configure-agent - -# Generate machine ID -RUN dbus-uuidgen > /etc/machine-id - -# Install NodeJS -RUN INSTALL_PKGS="nodejs nodejs-nodemon make gcc-c++" && \ - curl -fsSL https://rpm.nodesource.com/setup_${NODEJS_VERSION}.x | bash - && \ - yum install -y --setopt=tsflags=nodocs --disableplugin=subscription-manager $INSTALL_PKGS && \ - rpm -V $INSTALL_PKGS && \ - yum clean all -y - -# Install Yarn -# https://classic.yarnpkg.com/en/docs/install -RUN curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version $YARN_VERSION - -# Install Cypress dependencies -# https://docs.cypress.io/guides/getting-started/installing-cypress.html#System-requirements -COPY yum.repos.d/google-chrome.repo /etc/yum.repos.d/google-chrome.repo -COPY yum.repos.d/almalinux8.repo /etc/yum.repos.d/almalinux8.repo -COPY yum.repos.d/microsoft-edge.repo /etc/yum.repos.d/microsoft-edge.repo -RUN yum repolist \ - && yum install -y xorg-x11-server-Xvfb gtk2-devel gtk3-devel libnotify-devel GConf2 nss libXScrnSaver alsa-lib \ - && yum install -y --enablerepo google-chrome google-chrome-stable \ - && yum install -y --enablerepo edge microsoft-edge-stable \ - && yum clean all -y - -RUN npm config set registry=$nexusUrl/repository/npmjs/ && \ - npm config set //${nexusUrl#*://}/repository/npmjs/:_auth=$(echo -n $nexusAuth | base64) && \ - npm config set email=no-reply@opendevstack.org && \ - npm config set strict-ssl=true && \ - yarn config set registry $nexusUrl/repository/npmjs/ -g && \ - echo node version: $(node --version) && \ - echo npm version: $(npm --version) && \ - echo npx version: $(npx --version) && \ - echo yarn version: $(yarn --version) - -RUN chown -R 1001:0 $HOME && \ - chmod -R g+rwX $HOME - -USER 1001 diff --git a/common/jenkins-agents/nodejs18/docker/Dockerfile.ubi9 b/common/jenkins-agents/nodejs18/docker/Dockerfile.ubi9 index 3753b4ff4..9ce39a7fb 100644 --- a/common/jenkins-agents/nodejs18/docker/Dockerfile.ubi9 +++ b/common/jenkins-agents/nodejs18/docker/Dockerfile.ubi9 @@ -1,4 +1,4 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest +FROM opendevstackorg/ods-jenkins-agent-base-ubi9:latest # Labels consumed by Red Hat build service LABEL com.redhat.component="jenkins-agent-nodejs-rhel9-container" \ diff --git a/common/jenkins-agents/nodejs18/docker/yum.repos.d/almalinux8.repo b/common/jenkins-agents/nodejs18/docker/yum.repos.d/almalinux8.repo deleted file mode 100644 index d26a001f7..000000000 --- a/common/jenkins-agents/nodejs18/docker/yum.repos.d/almalinux8.repo +++ /dev/null @@ -1,13 +0,0 @@ -[almalinux-baseos] -name=AlmaLinux-8-BaseOS -baseurl=https://repo.almalinux.org/almalinux/8/BaseOS/x86_64/os/ -enabled=1 -gpgcheck=1 -gpgkey=https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux - -[almalinux-appstream] -name=AlmaLinux-8-AppStream -baseurl=https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/ -enabled=1 -gpgcheck=1 -gpgkey=https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux \ No newline at end of file diff --git a/common/jenkins-agents/nodejs20/docker/Dockerfile.ubi8 b/common/jenkins-agents/nodejs20/docker/Dockerfile.ubi8 deleted file mode 100644 index 21ca40b16..000000000 --- a/common/jenkins-agents/nodejs20/docker/Dockerfile.ubi8 +++ /dev/null @@ -1,63 +0,0 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest - -# Labels consumed by Red Hat build service -LABEL com.redhat.component="jenkins-agent-nodejs-rhel8-container" \ - name="openshift4/jenkins-agent-nodejs-rhel8" \ - architecture="x86_64" \ - io.k8s.display-name="Jenkins Agent Nodejs" \ - io.k8s.description="The jenkins agent nodejs image has the nodejs tools on top of the jenkins agent base image." \ - io.openshift.tags="openshift,jenkins,agent,nodejs" \ - maintainer="openshift-dev-services+jenkins@redhat.com" - -ARG nexusUrl -ARG nexusAuth - -ENV NODEJS_VERSION=20 \ - YARN_VERSION=1.22.19 \ - NPM_CONFIG_PREFIX=$HOME/.npm-global \ - NPM_CONFIG_CAFILE=/etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem \ - PATH=$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$HOME/node_modules/.bin/:$HOME/.npm-global/bin/:$PATH \ - LANG=en_US.UTF-8 \ - LC_ALL=en_US.UTF-8 - -COPY contrib/bin/configure-agent /usr/local/bin/configure-agent - -# Generate machine ID -RUN dbus-uuidgen > /etc/machine-id - -# Install NodeJS -RUN INSTALL_PKGS="nodejs nodejs-nodemon make gcc-c++" && \ - curl -fsSL https://rpm.nodesource.com/setup_${NODEJS_VERSION}.x | bash - && \ - yum install -y --setopt=tsflags=nodocs --disableplugin=subscription-manager $INSTALL_PKGS && \ - rpm -V $INSTALL_PKGS && \ - yum clean all -y - -# Install Yarn -# https://classic.yarnpkg.com/en/docs/install -RUN curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version $YARN_VERSION - -# Install Cypress dependencies -# https://docs.cypress.io/guides/getting-started/installing-cypress.html#System-requirements -COPY yum.repos.d/google-chrome.repo /etc/yum.repos.d/google-chrome.repo -COPY yum.repos.d/almalinux8.repo /etc/yum.repos.d/almalinux8.repo -COPY yum.repos.d/microsoft-edge.repo /etc/yum.repos.d/microsoft-edge.repo -RUN yum repolist \ - && yum install -y xorg-x11-server-Xvfb gtk2-devel gtk3-devel libnotify-devel GConf2 nss libXScrnSaver alsa-lib \ - && yum install -y --enablerepo google-chrome google-chrome-stable \ - && yum install -y --enablerepo edge microsoft-edge-stable \ - && yum clean all -y - -RUN npm config set registry=$nexusUrl/repository/npmjs/ && \ - npm config set //${nexusUrl#*://}/repository/npmjs/:_auth=$(echo -n $nexusAuth | base64) && \ - npm config set email=no-reply@opendevstack.org && \ - npm config set strict-ssl=true && \ - yarn config set registry $nexusUrl/repository/npmjs/ -g && \ - echo node version: $(node --version) && \ - echo npm version: $(npm --version) && \ - echo npx version: $(npx --version) && \ - echo yarn version: $(yarn --version) - -RUN chown -R 1001:0 $HOME && \ - chmod -R g+rwX $HOME - -USER 1001 diff --git a/common/jenkins-agents/nodejs20/docker/Dockerfile.ubi9 b/common/jenkins-agents/nodejs20/docker/Dockerfile.ubi9 index 9dfc171b5..6e59c0878 100644 --- a/common/jenkins-agents/nodejs20/docker/Dockerfile.ubi9 +++ b/common/jenkins-agents/nodejs20/docker/Dockerfile.ubi9 @@ -1,4 +1,4 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest +FROM opendevstackorg/ods-jenkins-agent-base-ubi9:latest # Labels consumed by Red Hat build service LABEL com.redhat.component="jenkins-agent-nodejs-rhel9-container" \ diff --git a/common/jenkins-agents/nodejs20/docker/yum.repos.d/almalinux8.repo b/common/jenkins-agents/nodejs20/docker/yum.repos.d/almalinux8.repo deleted file mode 100644 index d26a001f7..000000000 --- a/common/jenkins-agents/nodejs20/docker/yum.repos.d/almalinux8.repo +++ /dev/null @@ -1,13 +0,0 @@ -[almalinux-baseos] -name=AlmaLinux-8-BaseOS -baseurl=https://repo.almalinux.org/almalinux/8/BaseOS/x86_64/os/ -enabled=1 -gpgcheck=1 -gpgkey=https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux - -[almalinux-appstream] -name=AlmaLinux-8-AppStream -baseurl=https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/ -enabled=1 -gpgcheck=1 -gpgkey=https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux \ No newline at end of file diff --git a/common/jenkins-agents/nodejs22/docker/Dockerfile.ubi8 b/common/jenkins-agents/nodejs22/docker/Dockerfile.ubi8 deleted file mode 100644 index 9c0688f09..000000000 --- a/common/jenkins-agents/nodejs22/docker/Dockerfile.ubi8 +++ /dev/null @@ -1,63 +0,0 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest - -# Labels consumed by Red Hat build service -LABEL com.redhat.component="jenkins-agent-nodejs-rhel8-container" \ - name="openshift4/jenkins-agent-nodejs-rhel8" \ - architecture="x86_64" \ - io.k8s.display-name="Jenkins Agent Nodejs" \ - io.k8s.description="The jenkins agent nodejs image has the nodejs tools on top of the jenkins agent base image." \ - io.openshift.tags="openshift,jenkins,agent,nodejs" \ - maintainer="openshift-dev-services+jenkins@redhat.com" - -ARG nexusUrl -ARG nexusAuth - -ENV NODEJS_VERSION=22 \ - YARN_VERSION=1.22.19 \ - NPM_CONFIG_PREFIX=$HOME/.npm-global \ - NPM_CONFIG_CAFILE=/etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem \ - PATH=$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$HOME/node_modules/.bin/:$HOME/.npm-global/bin/:$PATH \ - LANG=en_US.UTF-8 \ - LC_ALL=en_US.UTF-8 - -COPY contrib/bin/configure-agent /usr/local/bin/configure-agent - -# Generate machine ID -RUN dbus-uuidgen > /etc/machine-id - -# Install NodeJS -RUN INSTALL_PKGS="nodejs nodejs-nodemon make gcc-c++" && \ - curl -fsSL https://rpm.nodesource.com/setup_${NODEJS_VERSION}.x | bash - && \ - yum install -y --setopt=tsflags=nodocs --disableplugin=subscription-manager $INSTALL_PKGS && \ - rpm -V $INSTALL_PKGS && \ - yum clean all -y - -# Install Yarn -# https://classic.yarnpkg.com/en/docs/install -RUN curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version $YARN_VERSION - -# Install Cypress dependencies -# https://docs.cypress.io/guides/getting-started/installing-cypress.html#System-requirements -COPY yum.repos.d/google-chrome.repo /etc/yum.repos.d/google-chrome.repo -COPY yum.repos.d/almalinux8.repo /etc/yum.repos.d/almalinux8.repo -COPY yum.repos.d/microsoft-edge.repo /etc/yum.repos.d/microsoft-edge.repo -RUN yum repolist \ - && yum install -y xorg-x11-server-Xvfb gtk2-devel gtk3-devel libnotify-devel GConf2 nss libXScrnSaver alsa-lib \ - && yum install -y --enablerepo google-chrome google-chrome-stable \ - && yum install -y --enablerepo edge microsoft-edge-stable \ - && yum clean all -y - -RUN npm config set registry=$nexusUrl/repository/npmjs/ && \ - npm config set //${nexusUrl#*://}/repository/npmjs/:_auth=$(echo -n $nexusAuth | base64) && \ - npm config set email=no-reply@opendevstack.org && \ - npm config set strict-ssl=true && \ - yarn config set registry $nexusUrl/repository/npmjs/ -g && \ - echo node version: $(node --version) && \ - echo npm version: $(npm --version) && \ - echo npx version: $(npx --version) && \ - echo yarn version: $(yarn --version) - -RUN chown -R 1001:0 $HOME && \ - chmod -R g+rwX $HOME - -USER 1001 diff --git a/common/jenkins-agents/nodejs22/docker/Dockerfile.ubi9 b/common/jenkins-agents/nodejs22/docker/Dockerfile.ubi9 index 1bc6f642f..a208a46d1 100644 --- a/common/jenkins-agents/nodejs22/docker/Dockerfile.ubi9 +++ b/common/jenkins-agents/nodejs22/docker/Dockerfile.ubi9 @@ -1,4 +1,4 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest +FROM opendevstackorg/ods-jenkins-agent-base-ubi9:latest # Labels consumed by Red Hat build service LABEL com.redhat.component="jenkins-agent-nodejs-rhel9-container" \ diff --git a/common/jenkins-agents/nodejs22/docker/yum.repos.d/almalinux8.repo b/common/jenkins-agents/nodejs22/docker/yum.repos.d/almalinux8.repo deleted file mode 100644 index d26a001f7..000000000 --- a/common/jenkins-agents/nodejs22/docker/yum.repos.d/almalinux8.repo +++ /dev/null @@ -1,13 +0,0 @@ -[almalinux-baseos] -name=AlmaLinux-8-BaseOS -baseurl=https://repo.almalinux.org/almalinux/8/BaseOS/x86_64/os/ -enabled=1 -gpgcheck=1 -gpgkey=https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux - -[almalinux-appstream] -name=AlmaLinux-8-AppStream -baseurl=https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/ -enabled=1 -gpgcheck=1 -gpgkey=https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux \ No newline at end of file diff --git a/common/jenkins-agents/nodejs24/docker/Dockerfile.ubi8 b/common/jenkins-agents/nodejs24/docker/Dockerfile.ubi8 deleted file mode 100644 index 73b894939..000000000 --- a/common/jenkins-agents/nodejs24/docker/Dockerfile.ubi8 +++ /dev/null @@ -1,63 +0,0 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest - -# Labels consumed by Red Hat build service -LABEL com.redhat.component="jenkins-agent-nodejs-rhel8-container" \ - name="openshift4/jenkins-agent-nodejs-rhel8" \ - architecture="x86_64" \ - io.k8s.display-name="Jenkins Agent Nodejs" \ - io.k8s.description="The jenkins agent nodejs image has the nodejs tools on top of the jenkins agent base image." \ - io.openshift.tags="openshift,jenkins,agent,nodejs" \ - maintainer="openshift-dev-services+jenkins@redhat.com" - -ARG nexusUrl -ARG nexusAuth - -ENV NODEJS_VERSION=24 \ - YARN_VERSION=1.22.19 \ - NPM_CONFIG_PREFIX=$HOME/.npm-global \ - NPM_CONFIG_CAFILE=/etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem \ - PATH=$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$HOME/node_modules/.bin/:$HOME/.npm-global/bin/:$PATH \ - LANG=en_US.UTF-8 \ - LC_ALL=en_US.UTF-8 - -COPY contrib/bin/configure-agent /usr/local/bin/configure-agent - -# Generate machine ID -RUN dbus-uuidgen > /etc/machine-id - -# Install NodeJS -RUN INSTALL_PKGS="nodejs nodejs-nodemon make gcc-c++" && \ - curl -fsSL https://rpm.nodesource.com/setup_${NODEJS_VERSION}.x | bash - && \ - yum install -y --setopt=tsflags=nodocs --disableplugin=subscription-manager $INSTALL_PKGS && \ - rpm -V $INSTALL_PKGS && \ - yum clean all -y - -# Install Yarn -# https://classic.yarnpkg.com/en/docs/install -RUN curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version $YARN_VERSION - -# Install Cypress dependencies -# https://docs.cypress.io/guides/getting-started/installing-cypress.html#System-requirements -COPY yum.repos.d/google-chrome.repo /etc/yum.repos.d/google-chrome.repo -COPY yum.repos.d/almalinux8.repo /etc/yum.repos.d/almalinux8.repo -COPY yum.repos.d/microsoft-edge.repo /etc/yum.repos.d/microsoft-edge.repo -RUN yum repolist \ - && yum install -y xorg-x11-server-Xvfb gtk2-devel gtk3-devel libnotify-devel GConf2 nss libXScrnSaver alsa-lib \ - && yum install -y --enablerepo google-chrome google-chrome-stable \ - && yum install -y --enablerepo edge microsoft-edge-stable \ - && yum clean all -y - -RUN npm config set registry=$nexusUrl/repository/npmjs/ && \ - npm config set //${nexusUrl#*://}/repository/npmjs/:_auth=$(echo -n $nexusAuth | base64) && \ - npm config set email=no-reply@opendevstack.org && \ - npm config set strict-ssl=true && \ - yarn config set registry $nexusUrl/repository/npmjs/ -g && \ - echo node version: $(node --version) && \ - echo npm version: $(npm --version) && \ - echo npx version: $(npx --version) && \ - echo yarn version: $(yarn --version) - -RUN chown -R 1001:0 $HOME && \ - chmod -R g+rwX $HOME - -USER 1001 diff --git a/common/jenkins-agents/nodejs24/docker/Dockerfile.ubi9 b/common/jenkins-agents/nodejs24/docker/Dockerfile.ubi9 index 4cc0d71d6..3bd415ccc 100644 --- a/common/jenkins-agents/nodejs24/docker/Dockerfile.ubi9 +++ b/common/jenkins-agents/nodejs24/docker/Dockerfile.ubi9 @@ -1,4 +1,4 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest +FROM opendevstackorg/ods-jenkins-agent-base-ubi9:latest # Labels consumed by Red Hat build service LABEL com.redhat.component="jenkins-agent-nodejs-rhel9-container" \ diff --git a/common/jenkins-agents/nodejs24/docker/yum.repos.d/almalinux8.repo b/common/jenkins-agents/nodejs24/docker/yum.repos.d/almalinux8.repo deleted file mode 100644 index d26a001f7..000000000 --- a/common/jenkins-agents/nodejs24/docker/yum.repos.d/almalinux8.repo +++ /dev/null @@ -1,13 +0,0 @@ -[almalinux-baseos] -name=AlmaLinux-8-BaseOS -baseurl=https://repo.almalinux.org/almalinux/8/BaseOS/x86_64/os/ -enabled=1 -gpgcheck=1 -gpgkey=https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux - -[almalinux-appstream] -name=AlmaLinux-8-AppStream -baseurl=https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/ -enabled=1 -gpgcheck=1 -gpgkey=https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux \ No newline at end of file diff --git a/common/jenkins-agents/python/docker/Dockerfile.ubi8 b/common/jenkins-agents/python/docker/Dockerfile.ubi8 deleted file mode 100644 index bed9a16f7..000000000 --- a/common/jenkins-agents/python/docker/Dockerfile.ubi8 +++ /dev/null @@ -1,37 +0,0 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest - -LABEL maintainer="Gerard Castillo " - -ARG nexusHost -ARG nexusAuth - -ENV PYTHONUNBUFFERED=1 \ - PYTHONIOENCODING=UTF-8 \ - PIP_NO_CACHE_DIR=off \ - PATH=$JAVA_HOME/bin:$PATH - -RUN yum module install -y python38:3.8/build && \ - yum module install -y python39:3.9/build --allowerasing && \ - yum install -y python3.11 python3.11-pip python3.11-devel python3.11-setuptools --allowerasing && \ - yum install -y python3.12 python3.12-pip python3.12-devel python3.12-setuptools --allowerasing && \ - yum install -y autoconf automake gcc-c++ openssl-devel libffi-devel && \ - yum -y clean all - -RUN pipVersions=( pip3.8 pip3.9 pip3.11 pip3.12 ); \ - for pipV in "${pipVersions[@]}"; \ - do \ - if [ ! -z ${nexusHost} ] && [ ! -z ${nexusAuth} ]; \ - then $pipV config set global.index-url https://${nexusAuth}@${nexusHost}/repository/pypi-all/simple \ - && $pipV config set global.trusted-host ${nexusHost} \ - && $pipV config set global.extra-index-url https://pypi.org/simple; \ - fi; \ - $pipV config set global.cert /etc/ssl/certs/ca-bundle.crt && \ - $pipV install --upgrade pip --user && \ - $pipV install virtualenv==20.26.3 setuptools==72.2.0 Cython==3.0.11 pypandoc==1.13; \ - done; - -# Enables default user to access $HOME folder -RUN chown -R 1001:0 $HOME && \ - chmod -R a+rw $HOME - -USER 1001 diff --git a/common/jenkins-agents/python/docker/Dockerfile.ubi9 b/common/jenkins-agents/python/docker/Dockerfile.ubi9 index 3bf8bfd7e..49ab6a0a6 100644 --- a/common/jenkins-agents/python/docker/Dockerfile.ubi9 +++ b/common/jenkins-agents/python/docker/Dockerfile.ubi9 @@ -1,4 +1,4 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest +FROM opendevstackorg/ods-jenkins-agent-base-ubi9:latest LABEL maintainer="Gerard Castillo " diff --git a/common/jenkins-agents/rust/docker/Dockerfile.ubi8 b/common/jenkins-agents/rust/docker/Dockerfile.ubi8 deleted file mode 100644 index 21f5d10bd..000000000 --- a/common/jenkins-agents/rust/docker/Dockerfile.ubi8 +++ /dev/null @@ -1,44 +0,0 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest - -LABEL maintainer="Gerard C.L. " - -ARG rustVersion -ARG rustToolchain -ARG cargoNextestVersion -ARG cargoLlvmCovVersion -ARG cargoGenerateVersion -ARG cargoDenyVersion - -ENV PATH="$HOME/.cargo/bin:$PATH" -ENV USER="rust-agent" -ENV CARGO_NEXTEST_VERSION=${cargoNextestVersion} \ - CARGO_LLVM_COV_VERSION=${cargoLlvmCovVersion} \ - CARGO_GENERATE_VERSION=${cargoGenerateVersion} \ - CARGO_DENY_VERSION=${cargoDenyVersion} \ - RUST_VERSION=${rustVersion} - -RUN yum install -y binutils cpp gcc glibc-devel glibc-headers isl kernel-headers libasan libatomic \ - libgomp libmpc libpkgconf libubsan libxcrypt-devel llvm-libs pkgconf pkgconf-m4 pkgconf-pkg-config \ - openssl-devel cpan perl-IPC-Cmd && \ - cpan install FindBin - -RUN mkdir -p $HOME/.cargo/bin $HOME/.rustup && \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- \ - -y --profile complete --default-toolchain ${rustVersion} -t ${rustToolchain} && \ - cargo -V && \ - # Download binaries and install to $HOME/.cargo/bin - curl --proto '=https' --tlsv1.2 -fsSL https://github.com/nextest-rs/nextest/releases/download/cargo-nextest-$CARGO_NEXTEST_VERSION/cargo-nextest-$CARGO_NEXTEST_VERSION-$rustToolchain.tar.gz | tar xzf - -C "$HOME/.cargo/bin" && \ - curl --proto '=https' --tlsv1.2 -fsSL https://github.com/cargo-generate/cargo-generate/releases/download/v$CARGO_GENERATE_VERSION/cargo-generate-v$CARGO_GENERATE_VERSION-$rustToolchain.tar.gz | tar xzf - -C "$HOME/.cargo/bin" && \ - # curl --proto '=https' --tlsv1.2 -fsSL https://github.com/taiki-e/cargo-llvm-cov/releases/download/v$CARGO_LLVM_COV_VERSION/cargo-llvm-cov-$rustToolchain.tar.gz | tar xzf - -C "$HOME/.cargo/bin" && \ - # cargo LLVM coverage crate is recommended to be compiled as it takes care to add the OS lib dependencies the proper way - cargo install cargo-llvm-cov --locked --version $CARGO_LLVM_COV_VERSION && \ - # install cargo deny as release sources do not provide our rust toolchain target - cargo install cargo-deny --locked --version $CARGO_DENY_VERSION && \ - cargo --version && \ - cargo nextest --version && \ - cargo llvm-cov --version && \ - cargo generate --version && \ - cargo deny --version - -RUN chgrp -R 0 $HOME/.cargo $HOME/.rustup && \ - chmod -R g=u $HOME/.cargo $HOME/.rustup diff --git a/common/jenkins-agents/rust/docker/Dockerfile.ubi9 b/common/jenkins-agents/rust/docker/Dockerfile.ubi9 index 34a7428a2..7f83781e4 100644 --- a/common/jenkins-agents/rust/docker/Dockerfile.ubi9 +++ b/common/jenkins-agents/rust/docker/Dockerfile.ubi9 @@ -1,4 +1,4 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest +FROM opendevstackorg/ods-jenkins-agent-base-ubi9:latest LABEL maintainer="Gerard C.L. " diff --git a/common/jenkins-agents/scala/docker/Dockerfile.ubi8 b/common/jenkins-agents/scala/docker/Dockerfile.ubi8 deleted file mode 100644 index 6d802c95a..000000000 --- a/common/jenkins-agents/scala/docker/Dockerfile.ubi8 +++ /dev/null @@ -1,69 +0,0 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest - -LABEL maintainer="Jan Frank " - -ARG nexusUrl -ARG nexusUsername -ARG nexusPassword - -# Container support is now integrated in Java 11, the +UseCGroupMemoryLimitForHeap option has been pruned -ENV JAVA_TOOL_OPTIONS="-XX:+UnlockExperimentalVMOptions -Dsun.zip.disableMemoryMapping=true" - -# Install sbt and java devel 11/17 -ENV SBT_VERSION=1.8.2 -ENV SBT_CREDENTIALS="$HOME/.sbt/.credentials" -RUN rm -f /etc/yum.repos.d/bintray-rpm.repo && \ - curl -L https://www.scala-sbt.org/sbt-rpm.repo > sbt-rpm.repo && \ - mv sbt-rpm.repo /etc/yum.repos.d/ && \ - yum -y install sbt-$SBT_VERSION java-11-openjdk-devel java-17-openjdk-devel && \ - yum clean all && \ - rm -rf /var/cache/yum - -# Copy use java scripts. -COPY use-j*.sh /usr/local/bin/ -RUN chmod +x /usr/local/bin/use-j*.sh && \ - chmod ugo+s /usr/local/bin/use-j*.sh && \ - sh -c 'chmod ugo+s $(which alternatives)' && \ - ls -la /usr/local/bin/use-j*.sh && \ - echo "--- STARTS JDK 11/17/21 TESTS ---" && \ - source use-j11.sh && \ - source use-j17.sh && \ - source use-j21.sh && \ - echo "--- ENDS JDK 11/17/21 TESTS ---" - -COPY sbtconfig/repositories $HOME/.sbt/repositories -COPY sbtconfig/credentials.sbt $HOME/.sbt/1.0/plugins/credentials.sbt -COPY sbtconfig/credentials $HOME/.sbt/.credentials -COPY sbtconfig/sbtopts /etc/sbt/sbtopts -COPY set_sbt_proxy.sh /tmp/set_sbt_proxy.sh - -RUN cat $HOME/.sbt/repositories | sed -e "s|NEXUS_URL|$nexusUrl|g" > $HOME/.sbt/repositories.tmp && \ - mv $HOME/.sbt/repositories.tmp $HOME/.sbt/repositories && \ - nexusHost=$(echo $nexusUrl | sed -e "s|https://||g" | sed -e "s|http://||g") && \ - nexusHost=$(echo $nexusHost | sed -e "s|:.*||g") && \ - sed -i.bak -e "s|NEXUS_HOST|$nexusHost|g" $HOME/.sbt/.credentials && \ - sed -i.bak -e "s|NEXUS_USERNAME|$nexusUsername|g" $HOME/.sbt/.credentials && \ - sed -i.bak -e "s|NEXUS_PASSWORD|$nexusPassword|g" $HOME/.sbt/.credentials && \ - rm $HOME/.sbt/.credentials.bak && \ - cd /tmp && \ - /tmp/set_sbt_proxy.sh && \ - if [ ! -f "/usr/bin/sbt" ]; then echo "sbt path /usr/bin/sbt could not be found"; exit 1 ; fi - -RUN chown -R 1001:0 $HOME && \ - chmod -R g+rwX $HOME && \ - chmod -c 666 /etc/pki/ca-trust/extracted/java/cacerts && \ - ls -la /etc/pki/ca-trust/extracted/java/cacerts - -# temporary java version switch bugfix -USER root -RUN chgrp -R 0 /var/lib/alternatives && \ - chmod -R g=u /var/lib/alternatives && \ - chgrp -R 0 /etc/alternatives && \ - chmod -R g=u /etc/alternatives && \ - chmod -R u+w /usr/bin && \ - chgrp -R 0 /usr/bin && \ - chmod -R g=u /usr/bin && \ - chgrp -R 0 /usr/share/man && \ - chmod -R g=u /usr/share/man - -USER 1001 \ No newline at end of file diff --git a/common/jenkins-agents/scala/docker/Dockerfile.ubi9 b/common/jenkins-agents/scala/docker/Dockerfile.ubi9 index 6d802c95a..55b72a68d 100644 --- a/common/jenkins-agents/scala/docker/Dockerfile.ubi9 +++ b/common/jenkins-agents/scala/docker/Dockerfile.ubi9 @@ -1,4 +1,4 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest +FROM opendevstackorg/ods-jenkins-agent-base-ubi9:latest LABEL maintainer="Jan Frank " diff --git a/common/jenkins-agents/terraform-2306/docker/Dockerfile.ubi8 b/common/jenkins-agents/terraform-2306/docker/Dockerfile.ubi8 deleted file mode 100644 index 694478f4e..000000000 --- a/common/jenkins-agents/terraform-2306/docker/Dockerfile.ubi8 +++ /dev/null @@ -1,204 +0,0 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest - -LABEL maintainer="Erhard Wais , Frank Joas , Josef Hartmann , Steve Taylor " - -# Labels consumed by Red Hat build service -LABEL com.redhat.component="jenkins-agent-terraform-ubi8-docker" \ - name="openshift/jenkins-agent-terraform-ubi8" \ - version="0.1" \ - architecture="x86_64" \ - release="1" \ - io.k8s.display-name="Jenkins Agent Terraform" \ - io.k8s.description="The jenkins agent image has terraform and other tools on top of the jenkins agent base image." \ - io.openshift.tags="openshift,jenkins,agent,terraform,aws,azure" - -ARG nexusHost -ARG nexusAuth -ARG NPMJS_REGISTRY_FLAG - -ENV TERRAFORM_VERSION=1.4.6 \ - TERRAFORM_CONFIG_INSPECT_VERSION=0.2.0 \ - TERRAFORM_DOCS_VERSION=v0.16.0 \ - RUBY_VERSION=3.2.2 \ - PACKER_VERSION=1.8.7 \ - CONSUL_VERSION=1.15.2 \ - TFENV_VERSION=3.0.0 \ - TFLINT_VERSION=0.46.1 \ - NODEJS_VERSION=18 \ - BUNDLER_VERSION=2.4.13 \ - AGE_VERSION=1.1.1 \ - GEM_HOME=/opt/bundle \ - RBENV_ROOT=/opt/rbenv \ - RBENV_SHELL=bash \ - NPM_CONFIG_CAFILE=/etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem - -ENV INSTALL_PKGS="yum-utils gcc make git-core zlib zlib-devel gcc-c++ patch \ - python38 python38-pip python38-setuptools \ - python39 python39-pip python39-setuptools \ - python3.11 python3.11-pip python3.11-setuptools \ - readline \ - libffi-devel libyaml-devel openssl-devel make bzip2 autoconf curl sqlite-devel xz \ - jq parallel" -ENV INSTALL_DNF_PKGS="readline-devel bison automake libtool" -ENV PATH=/opt/tfenv/bin:/opt/rbenv/shims:/opt/rbenv/bin:/opt/node/bin:$PATH -ENV HOME=/home/jenkins - -RUN sh -c "rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm || true" -COPY python_requirements /tmp/requirements.txt - -# Workaroud we use when running behind proxy -# Basically we put the proxy certificate in certs folder -# COPY certs/* /etc/pki/ca-trust/source/anchors/ -# RUN update-ca-trust force-enable && update-ca-trust extract - -COPY yum.repos.d/almalinux8.repo /etc/yum.repos.d/almalinux8.repo -RUN sed -i 's@^\s*enabled\s*=.*$@enabled = 1@g' /etc/yum.repos.d/*.repo \ - && sed -i 's@^\s*enabled\s*=.*$@enabled = 0@g' /etc/yum.repos.d/almalinux8.repo \ - && grep -i '\(name\|enabled\)' /etc/yum.repos.d/*.repo - -RUN set -x \ - && dnf -y repolist \ - && dnf -y install $INSTALL_PKGS \ - && dnf -y install --enablerepo almalinux-baseos --enablerepo almalinux-appstream $INSTALL_DNF_PKGS \ - && dnf clean all - -RUN curl -sSL "https://bootstrap.pypa.io/pip/3.6/get-pip.py" -o "get-pip.py" \ - && python3 get-pip.py - -# Upgrade pip -RUN pipVersions=( pip3 pip3.8 pip3.9 pip3.11 ); \ - for pipV in "${pipVersions[@]}"; \ - do \ - if [ ! -z ${nexusHost} ] && [ ! -z ${nexusAuth} ]; \ - then $pipV config set global.index-url https://${nexusAuth}@${nexusHost}/repository/pypi-all/simple \ - && $pipV config set global.trusted-host ${nexusHost} \ - && $pipV config set global.extra-index-url https://pypi.org/simple; \ - fi; \ - $pipV config set global.cert /etc/ssl/certs/ca-bundle.crt && \ - $pipV install --upgrade pip --user && \ - $pipV install virtualenv pycodestyle; \ - done; \ - alternatives --set python /usr/bin/python3.11 \ - && alternatives --set python3 /usr/bin/python3.11 - -# Install python requirements -RUN python3.8 -m pip install -r /tmp/requirements.txt \ - && python3.9 -m pip install -r /tmp/requirements.txt \ - && python3.11 -m pip install -r /tmp/requirements.txt \ - && rm -f /tmp/requirements.txt - -# Install awscli2 -RUN curl -sSL "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" \ - && unzip -qq awscliv2.zip \ - && ./aws/install \ - && rm -f awscliv2.zip \ - && rm -Rf ./aws - -# Install awssamcli -RUN curl -sSL "https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip" -o "awssam.zip" \ - && unzip -qq -d awssam awssam.zip \ - && ./awssam/install && rm -f awssam.zip && rm -Rf ./awssam - -# Install NodeJS -RUN INSTALL_NODE="nodejs nodejs-nodemon" \ - && curl -fsSL https://rpm.nodesource.com/setup_${NODEJS_VERSION}.x | bash - \ - && yum install -y --setopt=tsflags=nodocs --disableplugin=subscription-manager $INSTALL_NODE \ - && rpm -V $INSTALL_NODE \ - && yum clean all -y \ - && npm config set registry=$nexusHost/repository/npmjs/ \ - && npm config set //${nexusHost#*://}/repository/npmjs/:_auth=$(echo -n $nexusAuth | base64) \ - && npm config set email=no-reply@opendevstack.org \ - && npm config set strict-ssl=true - -# Install aws cdk -RUN npm install -g ${NPMJS_REGISTRY_FLAG} aws-cdk \ - && node --version \ - && cdk --version - -# Install terraform -RUN wget -q -O /tmp/terraform.zip "https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip" \ - && unzip /tmp/terraform.zip -d /usr/local/bin \ - && rm -rf /tmp/terraform.zip \ - && terraform -h - -# Install tfenv -RUN umask 0002 && cd /opt && git clone --branch v${TFENV_VERSION} https://github.com/tfutils/tfenv.git \ - && TFENV_CURL_OUTPUT=0 /opt/tfenv/bin/tfenv install ${TERRAFORM_VERSION} \ - && /opt/tfenv/bin/tfenv use ${TERRAFORM_VERSION} \ - && chown -R 1001:0 /opt/tfenv \ - && chmod +x /opt/tfenv/bin/* \ - && terraform -version \ - && tfenv list - -# Install tflint -RUN wget -q -O /tmp/tflint.zip "https://github.com/terraform-linters/tflint/releases/download/v${TFLINT_VERSION}/tflint_linux_amd64.zip" \ - && unzip /tmp/tflint.zip -d /usr/local/bin \ - && rm -rf /tmp/tflint.zip \ - && tflint --version - -# Install packer -RUN wget -q -O /tmp/packer.zip "https://releases.hashicorp.com/packer/${PACKER_VERSION}/packer_${PACKER_VERSION}_linux_amd64.zip" \ - && unzip /tmp/packer.zip -d /usr/local/bin \ - && rm -rf /tmp/packer.zip \ - && packer --version - -# Install terraform-config-inspect -RUN wget -q -O /tmp/terraform-config-inspect.tar.gz https://github.com/nichtraunzer/terraform-config-inspect/releases/download/v${TERRAFORM_CONFIG_INSPECT_VERSION}/terraform-config-inspect_${TERRAFORM_CONFIG_INSPECT_VERSION}_linux_amd64.tar.gz \ - && tar zxpf /tmp/terraform-config-inspect.tar.gz -C /usr/local/bin/ \ - && rm -f /tmp/terraform-config-inspect.tar.gz \ - && chmod 755 /usr/local/bin/terraform-config-inspect - -# Install terraform-docs -RUN wget -q -O /tmp/terraform-docs.tar.gz https://github.com/terraform-docs/terraform-docs/releases/download/${TERRAFORM_DOCS_VERSION}/terraform-docs-${TERRAFORM_DOCS_VERSION}-linux-amd64.tar.gz \ - && tar zxpf /tmp/terraform-docs.tar.gz -C /usr/local/bin/ terraform-docs \ - && chmod +x /usr/local/bin/terraform-docs - -# Install consul-cli -RUN wget -q "https://releases.hashicorp.com/consul/${CONSUL_VERSION}/consul_${CONSUL_VERSION}_linux_amd64.zip" \ - && unzip consul_${CONSUL_VERSION}_linux_amd64.zip -d /usr/local/bin \ - && rm -f consul_${CONSUL_VERSION}_linux_amd64.zip \ - && chmod +x /usr/local/bin/consul \ - && /usr/local/bin/consul -version - -# Install age -RUN wget -q -O /tmp/age.tar.gz https://github.com/FiloSottile/age/releases/download/v${AGE_VERSION}/age-v${AGE_VERSION}-linux-amd64.tar.gz \ - && tar xzf /tmp/age.tar.gz -C /usr/local/bin \ - && rm -f /tmp/age.tar.gz - -RUN chmod +t /tmp \ - && chown -R 1001:0 $HOME \ - && chmod -R g+rwX $HOME \ - && mkdir -p $GEM_HOME \ - && chmod 2770 $GEM_HOME - -COPY Gemfile Gemfile.lock $GEM_HOME/ - -RUN chown -R 1001:0 $GEM_HOME \ - && chmod -R g+rw $GEM_HOME \ - && ls -lisa /home/jenkins $GEM_HOME - -# Setup ruby env and bundler gems -# RUBY https://syslint.com/blog/tutorial/how-to-install-ruby-on-rails-with-rbenv-on-centos-7-or-rhel-7/ -RUN cd /opt \ - && umask 0002 \ - && git clone https://github.com/rbenv/rbenv.git /opt/rbenv \ - && echo 'export PATH="/opt/rbenv/shims:/opt/rbenv/bin:$PATH"' >> ~/.bash_profile \ - && echo 'eval "$(rbenv init -)"' >> ~/.bash_profile \ - && source ~/.bash_profile \ - && git clone https://github.com/rbenv/ruby-build.git /opt/rbenv/plugins/ruby-build \ - && echo 'export PATH="/opt/rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bash_profile \ - && source ~/.bash_profile \ - && MAKE_OPTS='-j 4' rbenv install $RUBY_VERSION \ - && rbenv global $RUBY_VERSION \ - && gem install bundler -v $BUNDLER_VERSION \ - && RBENV_VERSION=$RUBY_VERSION gem install bundler -v $BUNDLER_VERSION \ - && bundle config default $BUNDLER_VERSION \ - && RBENV_VERSION=$RUBY_VERSION bundle config default $BUNDLER_VERSION \ - && bundle config set --global path $GEM_HOME \ - && RBENV_VERSION=$RUBY_VERSION bundle config set --global path $GEM_HOME \ - && cd $GEM_HOME \ - && BUNDLE_SILENCE_ROOT_WARNING=true bundle install --full-index --jobs=8 \ - && rm -Rf /home/jenkins/.bundle/cache - -USER 1001 - diff --git a/common/jenkins-agents/terraform-2306/docker/Dockerfile.ubi9 b/common/jenkins-agents/terraform-2306/docker/Dockerfile.ubi9 index d4d5e5b6e..ff8d0584c 100644 --- a/common/jenkins-agents/terraform-2306/docker/Dockerfile.ubi9 +++ b/common/jenkins-agents/terraform-2306/docker/Dockerfile.ubi9 @@ -1,4 +1,4 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest +FROM opendevstackorg/ods-jenkins-agent-base-ubi9:latest LABEL maintainer="Erhard Wais , Frank Joas , Josef Hartmann , Steve Taylor " diff --git a/common/jenkins-agents/terraform-2306/docker/yum.repos.d/almalinux8.repo b/common/jenkins-agents/terraform-2306/docker/yum.repos.d/almalinux8.repo deleted file mode 100644 index d26a001f7..000000000 --- a/common/jenkins-agents/terraform-2306/docker/yum.repos.d/almalinux8.repo +++ /dev/null @@ -1,13 +0,0 @@ -[almalinux-baseos] -name=AlmaLinux-8-BaseOS -baseurl=https://repo.almalinux.org/almalinux/8/BaseOS/x86_64/os/ -enabled=1 -gpgcheck=1 -gpgkey=https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux - -[almalinux-appstream] -name=AlmaLinux-8-AppStream -baseurl=https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/ -enabled=1 -gpgcheck=1 -gpgkey=https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux \ No newline at end of file diff --git a/common/jenkins-agents/terraform-2408/docker/Dockerfile.ubi8 b/common/jenkins-agents/terraform-2408/docker/Dockerfile.ubi8 deleted file mode 100644 index df0415d9c..000000000 --- a/common/jenkins-agents/terraform-2408/docker/Dockerfile.ubi8 +++ /dev/null @@ -1,218 +0,0 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest - -LABEL maintainer="Erhard Wais , Frank Joas , Josef Hartmann , Steve Taylor " - -# Labels consumed by Red Hat build service -LABEL com.redhat.component="jenkins-agent-terraform-ubi8-docker" \ - name="openshift/jenkins-agent-terraform-ubi8" \ - version="0.1" \ - architecture="x86_64" \ - release="1" \ - io.k8s.display-name="Jenkins Agent Terraform" \ - io.k8s.description="The jenkins agent image has terraform and other tools on top of the jenkins agent base image." \ - io.openshift.tags="openshift,jenkins,agent,terraform,aws,azure" - -ARG nexusHost -ARG nexusAuth -ARG NPMJS_REGISTRY_FLAG - -ENV TERRAFORM_VERSION=1.9.4 \ - TERRAFORM_CONFIG_INSPECT_VERSION=0.2.0 \ - TERRAFORM_DOCS_VERSION=v0.18.0 \ - RUBY_VERSION=3.3.4 \ - PACKER_VERSION=1.11.2 \ - CONSUL_VERSION=1.19.1 \ - TENV_VERSION=3.0.0 \ - TENV_AUTO_INSTALL=true \ - TENV_ROOT=/opt/tenv \ - GO_VERSION=1.21.13 \ - GOBIN=/usr/local/go/bin \ - TFLINT_VERSION=0.52.0 \ - NODEJS_VERSION=20 \ - BUNDLER_VERSION=2.5.17 \ - AGE_VERSION=1.2.0 \ - GEM_HOME=/opt/bundle \ - RBENV_ROOT=/opt/rbenv \ - RBENV_SHELL=bash \ - TASK_VERSION=3.38.0 \ - NPM_CONFIG_CAFILE=/etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem - -ENV INSTALL_PKGS="yum-utils gcc make git-core zlib zlib-devel gcc-c++ patch \ - python39 python39-pip python39-setuptools \ - python3.11 python3.11-pip python3.11-setuptools \ - python3.12 python3.12-pip python3.12-setuptools \ - readline \ - libffi-devel libyaml-devel openssl-devel make bzip2 autoconf curl sqlite-devel xz \ - jq parallel" -ENV INSTALL_DNF_PKGS="readline-devel bison automake libtool xorriso" -ENV PATH=/opt/rbenv/shims:/opt/rbenv/bin:/opt/node/bin:/usr/bin:/usr/local/go/bin:$PATH -ENV HOME=/home/jenkins - -RUN sh -c "rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm || true" -COPY python_requirements /tmp/requirements.txt - -# Workaroud we use when running behind proxy -# Basically we put the proxy certificate in certs folder -# COPY certs/* /etc/pki/ca-trust/source/anchors/ -# RUN update-ca-trust force-enable && update-ca-trust extract - -COPY yum.repos.d/almalinux8.repo /etc/yum.repos.d/almalinux8.repo -RUN sed -i 's@^\s*enabled\s*=.*$@enabled = 1@g' /etc/yum.repos.d/*.repo \ - && sed -i 's@^\s*enabled\s*=.*$@enabled = 0@g' /etc/yum.repos.d/almalinux8.repo \ - && grep -i '\(name\|enabled\)' /etc/yum.repos.d/*.repo - -RUN set -x \ - && dnf -y repolist \ - && dnf -y install $INSTALL_PKGS \ - && dnf -y install --enablerepo almalinux-baseos --enablerepo almalinux-appstream $INSTALL_DNF_PKGS - -RUN curl -sSL "https://bootstrap.pypa.io/pip/3.6/get-pip.py" -o "/tmp/get-pip.py" \ - && python3 /tmp/get-pip.py \ - && rm -f /tmp/get-pip.py - -# Upgrade pip -RUN pipVersions=( pip3 pip3.9 pip3.11 pip3.12 ); \ - for pipV in "${pipVersions[@]}"; \ - do \ - if [ ! -z ${nexusHost} ] && [ ! -z ${nexusAuth} ]; \ - then $pipV config set global.index-url https://${nexusAuth}@${nexusHost}/repository/pypi-all/simple \ - && $pipV config set global.trusted-host ${nexusHost} \ - && $pipV config set global.extra-index-url https://pypi.org/simple; \ - fi; \ - $pipV config set global.cert /etc/ssl/certs/ca-bundle.crt && \ - $pipV install --upgrade pip --user && \ - $pipV install virtualenv pycodestyle; \ - done; \ - alternatives --set python /usr/bin/python3.12 \ - && alternatives --set python3 /usr/bin/python3.12 - -# Install python requirements -RUN python3.9 -m pip install -r /tmp/requirements.txt \ - && python3.11 -m pip install -r /tmp/requirements.txt \ - && python3.12 -m pip install -r /tmp/requirements.txt \ - && rm -f /tmp/requirements.txt - -# Install awscli2 -RUN curl -sSL "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" \ - && unzip -qq awscliv2.zip \ - && ./aws/install \ - && rm -f awscliv2.zip \ - && rm -Rf ./aws - -# Install awssamcli -RUN curl -sSL "https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip" -o "awssam.zip" \ - && unzip -qq -d awssam awssam.zip \ - && ./awssam/install && rm -f awssam.zip && rm -Rf ./awssam - -# Install NodeJS -RUN INSTALL_NODE="nodejs nodejs-nodemon" \ - && curl -fsSL https://rpm.nodesource.com/setup_${NODEJS_VERSION}.x | bash - \ - && yum install -y --setopt=tsflags=nodocs --disableplugin=subscription-manager $INSTALL_NODE \ - && rpm -V $INSTALL_NODE \ - && yum clean all -y \ - && npm config set registry=$nexusHost/repository/npmjs/ \ - && npm config set //${nexusHost#*://}/repository/npmjs/:_auth=$(echo -n $nexusAuth | base64) \ - && npm config set email=no-reply@opendevstack.org \ - && npm config set strict-ssl=true - -# Install aws cdk -RUN npm install -g ${NPMJS_REGISTRY_FLAG} aws-cdk \ - && node --version \ - && cdk --version - -# Install tenv & install terraform -RUN mkdir -p "${TENV_ROOT}" && chmod 2775 "${TENV_ROOT}" && chown 1001:0 "${TENV_ROOT}" \ - && dnf install -y https://github.com/tofuutils/tenv/releases/download/v${TENV_VERSION}/tenv_v${TENV_VERSION}_amd64.rpm \ - && dnf clean all \ - && tenv tf install ${TERRAFORM_VERSION} \ - && tenv tf use ${TERRAFORM_VERSION} \ - && tenv version \ - && terraform -version \ - && tenv tf list \ - && echo 'export PATH=$(/usr/bin/tenv update-path)' > /etc/profile.d/tenv.sh \ - && chown -R 1001:0 "${TENV_ROOT}" \ - && chmod -R 2775 "${TENV_ROOT}" - -# Install GO for terratest -RUN cd /tmp \ - && curl -LfSso /tmp/go.tar.gz https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz \ - && tar -C /usr/local -xzf go.tar.gz \ - && rm -f /tmp/go.tar.gz \ - && /usr/local/go/bin/go version - -# Install go-task -RUN sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d v${TASK_VERSION} \ - && task --version - -# Install tflint -RUN wget -q -O /tmp/tflint.zip "https://github.com/terraform-linters/tflint/releases/download/v${TFLINT_VERSION}/tflint_linux_amd64.zip" \ - && unzip /tmp/tflint.zip -d /usr/local/bin \ - && rm -rf /tmp/tflint.zip \ - && tflint --version - -# Install packer -RUN wget -q -O /tmp/packer.zip "https://releases.hashicorp.com/packer/${PACKER_VERSION}/packer_${PACKER_VERSION}_linux_amd64.zip" \ - && unzip /tmp/packer.zip -d /usr/local/bin packer \ - && rm -rf /tmp/packer.zip \ - && packer --version - -# Install terraform-config-inspect -RUN wget -q -O /tmp/terraform-config-inspect.tar.gz https://github.com/nichtraunzer/terraform-config-inspect/releases/download/v${TERRAFORM_CONFIG_INSPECT_VERSION}/terraform-config-inspect_${TERRAFORM_CONFIG_INSPECT_VERSION}_linux_amd64.tar.gz \ - && tar zxpf /tmp/terraform-config-inspect.tar.gz -C /usr/local/bin/ terraform-config-inspect \ - && rm -f /tmp/terraform-config-inspect.tar.gz \ - && chmod 755 /usr/local/bin/terraform-config-inspect - -# Install terraform-docs -RUN wget -q -O /tmp/terraform-docs.tar.gz https://github.com/terraform-docs/terraform-docs/releases/download/${TERRAFORM_DOCS_VERSION}/terraform-docs-${TERRAFORM_DOCS_VERSION}-linux-amd64.tar.gz \ - && tar zxpf /tmp/terraform-docs.tar.gz -C /usr/local/bin/ terraform-docs \ - && chmod +x /usr/local/bin/terraform-docs \ - && rm -f /tmp/terraform-docs.tar.gz - -# Install consul-cli -RUN wget -q "https://releases.hashicorp.com/consul/${CONSUL_VERSION}/consul_${CONSUL_VERSION}_linux_amd64.zip" \ - && unzip consul_${CONSUL_VERSION}_linux_amd64.zip -d /usr/local/bin consul \ - && rm -f consul_${CONSUL_VERSION}_linux_amd64.zip \ - && chmod +x /usr/local/bin/consul \ - && /usr/local/bin/consul -version - -# Install age -RUN wget -q -O /tmp/age.tar.gz https://github.com/FiloSottile/age/releases/download/v${AGE_VERSION}/age-v${AGE_VERSION}-linux-amd64.tar.gz \ - && tar xzf /tmp/age.tar.gz -C /usr/local/bin \ - && rm -f /tmp/age.tar.gz - -RUN chmod +t /tmp \ - && chown -R 1001:0 $HOME \ - && chmod -R g+rwX $HOME \ - && mkdir -p $GEM_HOME \ - && chmod 2770 $GEM_HOME - -COPY Gemfile Gemfile.lock $GEM_HOME/ - -RUN chown -R 1001:0 $GEM_HOME \ - && chmod -R g+rw $GEM_HOME \ - && ls -lisa /home/jenkins $GEM_HOME - -# Setup ruby env and bundler gems -# RUBY https://syslint.com/blog/tutorial/how-to-install-ruby-on-rails-with-rbenv-on-centos-7-or-rhel-7/ -RUN cd /opt \ - && umask 0002 \ - && git clone https://github.com/rbenv/rbenv.git /opt/rbenv \ - && echo 'export PATH="/opt/rbenv/shims:/opt/rbenv/bin:$PATH"' >> ~/.bash_profile \ - && echo 'eval "$(rbenv init -)"' >> ~/.bash_profile \ - && source ~/.bash_profile \ - && git clone https://github.com/rbenv/ruby-build.git /opt/rbenv/plugins/ruby-build \ - && echo 'export PATH="/opt/rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bash_profile \ - && source ~/.bash_profile \ - && MAKE_OPTS='-j 4' rbenv install $RUBY_VERSION \ - && rbenv global $RUBY_VERSION \ - && gem install bundler -v $BUNDLER_VERSION \ - && RBENV_VERSION=$RUBY_VERSION gem install bundler -v $BUNDLER_VERSION \ - && bundle config default $BUNDLER_VERSION \ - && RBENV_VERSION=$RUBY_VERSION bundle config default $BUNDLER_VERSION \ - && bundle config set --global path $GEM_HOME \ - && RBENV_VERSION=$RUBY_VERSION bundle config set --global path $GEM_HOME \ - && cd $GEM_HOME \ - && BUNDLE_SILENCE_ROOT_WARNING=true bundle install --full-index --jobs=8 \ - && rm -Rf /home/jenkins/.bundle/cache - -USER 1001 diff --git a/common/jenkins-agents/terraform-2408/docker/Dockerfile.ubi9 b/common/jenkins-agents/terraform-2408/docker/Dockerfile.ubi9 index c26681dcb..1ceb13e81 100644 --- a/common/jenkins-agents/terraform-2408/docker/Dockerfile.ubi9 +++ b/common/jenkins-agents/terraform-2408/docker/Dockerfile.ubi9 @@ -1,4 +1,4 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest +FROM opendevstackorg/ods-jenkins-agent-base-ubi9:latest LABEL maintainer="Erhard Wais , Frank Joas , Josef Hartmann , Steve Taylor " diff --git a/common/jenkins-agents/terraform-2408/docker/yum.repos.d/almalinux8.repo b/common/jenkins-agents/terraform-2408/docker/yum.repos.d/almalinux8.repo deleted file mode 100644 index d26a001f7..000000000 --- a/common/jenkins-agents/terraform-2408/docker/yum.repos.d/almalinux8.repo +++ /dev/null @@ -1,13 +0,0 @@ -[almalinux-baseos] -name=AlmaLinux-8-BaseOS -baseurl=https://repo.almalinux.org/almalinux/8/BaseOS/x86_64/os/ -enabled=1 -gpgcheck=1 -gpgkey=https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux - -[almalinux-appstream] -name=AlmaLinux-8-AppStream -baseurl=https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/ -enabled=1 -gpgcheck=1 -gpgkey=https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux \ No newline at end of file From be9d795b36c83e31c2fbc097aa763ed8237c5528 Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Thu, 16 Apr 2026 16:21:49 +0200 Subject: [PATCH 17/24] update Jenkins agents to use UBI9 and adjust related steps in CI workflow --- .../continuous-integration-workflow.yml | 155 +++++++++--------- 1 file changed, 81 insertions(+), 74 deletions(-) diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index 61f894a1d..f3ced5d51 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -2,8 +2,8 @@ name: Continous Integration Tests on: [ push, pull_request ] jobs: - jenkins-agent-base-ubi8: - name: Jenkins agent base (UBI8) + jenkins-agent-base-ubi9: + name: Jenkins agent base (UBI9) runs-on: ubuntu-22.04 steps: - @@ -13,26 +13,33 @@ jobs: repository: ${{ github.repository_owner }}/ods-core token: ${{ secrets.GH_REPO_READ_TOKEN || github.token }} path: ods-core + - + name: Login to Red Hat Registry + uses: docker/login-action@v3 + with: + registry: registry.redhat.io + username: ${{ secrets.REDHAT_REGISTRY_USERNAME }} + password: ${{ secrets.REDHAT_REGISTRY_PASSWORD }} - name: Build base docker image working-directory: ods-core/jenkins/agent-base run: | - docker build --tag opendevstackorg/ods-jenkins-agent-base-ubi8:latest --file Dockerfile.ubi8 . + docker build --tag opendevstackorg/ods-jenkins-agent-base-ubi9:latest --file Dockerfile.ubi9 . - name: Save base image as artifact run: | - docker save --output ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar opendevstackorg/ods-jenkins-agent-base-ubi8:latest + docker save --output ${{ runner.temp }}/ods-jenkins-agent-base-ubi9.tar opendevstackorg/ods-jenkins-agent-base-ubi9:latest - name: Upload base image artifact uses: actions/upload-artifact@v4.4.3 with: - name: jenkins-agent-base-ubi8 - path: ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar + name: jenkins-agent-base-ubi9 + path: ${{ runner.temp }}/ods-jenkins-agent-base-ubi9.tar - jenkins-agent-golang-ubi8: - name: Jenkins agent Go (UBI8) + jenkins-agent-golang-ubi9: + name: Jenkins agent Go (UBI9) runs-on: ubuntu-22.04 - needs: [ jenkins-agent-base-ubi8 ] + needs: [ jenkins-agent-base-ubi9 ] steps: - name: Checkout repository @@ -41,25 +48,25 @@ jobs: name: Download base image artifact uses: actions/download-artifact@v4.1.8 with: - name: jenkins-agent-base-ubi8 + name: jenkins-agent-base-ubi9 path: ${{ runner.temp }} - name: Load base image run: | - docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar + docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi9.tar - name: Build docker image working-directory: common/jenkins-agents/golang/docker run: | - docker build --tag agent-go-test-ubi8 --file Dockerfile.ubi8 \ + docker build --tag agent-go-test-ubi9 --file Dockerfile.ubi9 \ --build-arg goDistributionUrl=https://go.dev/dl/go1.23.0.linux-amd64.tar.gz \ --build-arg golangciVersion=v1.60.1 \ . - jenkins-agent-jdk-ubi8: - name: Jenkins agent JDK (UBI8) + jenkins-agent-jdk-ubi9: + name: Jenkins agent JDK (UBI9) runs-on: ubuntu-22.04 - needs: [ jenkins-agent-base-ubi8 ] + needs: [ jenkins-agent-base-ubi9 ] steps: - name: Checkout repository @@ -68,26 +75,26 @@ jobs: name: Download base image artifact uses: actions/download-artifact@v4.1.8 with: - name: jenkins-agent-base-ubi8 + name: jenkins-agent-base-ubi9 path: ${{ runner.temp }} - name: Load base image run: | - docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar + docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi9.tar - name: Build docker image working-directory: common/jenkins-agents/jdk/docker run: | - docker build --tag agent-jdk-test-ubi8 --file Dockerfile.ubi8 \ + docker build --tag agent-jdk-test-ubi9 --file Dockerfile.ubi9 \ --build-arg nexusUrl=https://nexus.example.com \ --build-arg nexusUsername=developer \ --build-arg nexusPassword=s3cr3t \ . - jenkins-agent-nodejs18-ubi8: - name: Jenkins agent NodeJS 18 (UBI8) + jenkins-agent-nodejs18-ubi9: + name: Jenkins agent NodeJS 18 (UBI9) runs-on: ubuntu-22.04 - needs: [ jenkins-agent-base-ubi8 ] + needs: [ jenkins-agent-base-ubi9 ] steps: - name: Checkout repository @@ -96,25 +103,25 @@ jobs: name: Download base image artifact uses: actions/download-artifact@v4.1.8 with: - name: jenkins-agent-base-ubi8 + name: jenkins-agent-base-ubi9 path: ${{ runner.temp }} - name: Load base image run: | - docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar + docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi9.tar - name: Build docker image working-directory: common/jenkins-agents/nodejs18/docker run: | - docker build --tag agent-nodejs18-test-ubi8 --file Dockerfile.ubi8 \ + docker build --tag agent-nodejs18-test-ubi9 --file Dockerfile.ubi9 \ --build-arg nexusUrl=https://nexus.example.com \ --build-arg nexusAuth=developer:s3cr3t \ . - jenkins-agent-nodejs20-ubi8: - name: Jenkins agent NodeJS 20 (UBI8) + jenkins-agent-nodejs20-ubi9: + name: Jenkins agent NodeJS 20 (UBI9) runs-on: ubuntu-22.04 - needs: [ jenkins-agent-base-ubi8 ] + needs: [ jenkins-agent-base-ubi9 ] steps: - name: Checkout repository @@ -123,25 +130,25 @@ jobs: name: Download base image artifact uses: actions/download-artifact@v4.1.8 with: - name: jenkins-agent-base-ubi8 + name: jenkins-agent-base-ubi9 path: ${{ runner.temp }} - name: Load base image run: | - docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar + docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi9.tar - name: Build docker image working-directory: common/jenkins-agents/nodejs20/docker run: | - docker build --tag agent-nodejs20-test-ubi8 --file Dockerfile.ubi8 \ + docker build --tag agent-nodejs20-test-ubi9 --file Dockerfile.ubi9 \ --build-arg nexusUrl=https://nexus.example.com \ --build-arg nexusAuth=developer:s3cr3t \ . - jenkins-agent-nodejs22-ubi8: - name: Jenkins agent NodeJS 22 (UBI8) + jenkins-agent-nodejs22-ubi9: + name: Jenkins agent NodeJS 22 (UBI9) runs-on: ubuntu-22.04 - needs: [ jenkins-agent-base-ubi8 ] + needs: [ jenkins-agent-base-ubi9 ] steps: - name: Checkout repository @@ -150,25 +157,25 @@ jobs: name: Download base image artifact uses: actions/download-artifact@v4.1.8 with: - name: jenkins-agent-base-ubi8 + name: jenkins-agent-base-ubi9 path: ${{ runner.temp }} - name: Load base image run: | - docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar + docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi9.tar - name: Build docker image working-directory: common/jenkins-agents/nodejs22/docker run: | - docker build --tag agent-nodejs22-test-ubi8 --file Dockerfile.ubi8 \ + docker build --tag agent-nodejs22-test-ubi9 --file Dockerfile.ubi9 \ --build-arg nexusUrl=https://nexus.example.com \ --build-arg nexusAuth=developer:s3cr3t \ . - jenkins-agent-nodejs24-ubi8: - name: Jenkins agent NodeJS 24 (UBI8) + jenkins-agent-nodejs24-ubi9: + name: Jenkins agent NodeJS 24 (UBI9) runs-on: ubuntu-22.04 - needs: [ jenkins-agent-base-ubi8 ] + needs: [ jenkins-agent-base-ubi9 ] steps: - name: Checkout repository @@ -177,25 +184,25 @@ jobs: name: Download base image artifact uses: actions/download-artifact@v4.1.8 with: - name: jenkins-agent-base-ubi8 + name: jenkins-agent-base-ubi9 path: ${{ runner.temp }} - name: Load base image run: | - docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar + docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi9.tar - name: Build docker image working-directory: common/jenkins-agents/nodejs24/docker run: | - docker build --tag agent-nodejs24-test-ubi8 --file Dockerfile.ubi8 \ + docker build --tag agent-nodejs24-test-ubi9 --file Dockerfile.ubi9 \ --build-arg nexusUrl=https://nexus.example.com \ --build-arg nexusAuth=developer:s3cr3t \ . - jenkins-agent-python-ubi8: - name: Jenkins agent Python (UBI8) + jenkins-agent-python-ubi9: + name: Jenkins agent Python (UBI9) runs-on: ubuntu-22.04 - needs: [ jenkins-agent-base-ubi8 ] + needs: [ jenkins-agent-base-ubi9 ] steps: - name: Checkout repository @@ -204,22 +211,22 @@ jobs: name: Download base image artifact uses: actions/download-artifact@v4.1.8 with: - name: jenkins-agent-base-ubi8 + name: jenkins-agent-base-ubi9 path: ${{ runner.temp }} - name: Load base image run: | - docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar + docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi9.tar - name: Build docker image working-directory: common/jenkins-agents/python/docker run: | - docker build --tag agent-python-test-ubi8 --file Dockerfile.ubi8 . + docker build --tag agent-python-test-ubi9 --file Dockerfile.ubi9 . - jenkins-agent-rust-ubi8: - name: Jenkins agent Rust (UBI8) + jenkins-agent-rust-ubi9: + name: Jenkins agent Rust (UBI9) runs-on: ubuntu-22.04 - needs: [ jenkins-agent-base-ubi8 ] + needs: [ jenkins-agent-base-ubi9 ] steps: - name: Checkout repository @@ -228,17 +235,17 @@ jobs: name: Download base image artifact uses: actions/download-artifact@v4.1.8 with: - name: jenkins-agent-base-ubi8 + name: jenkins-agent-base-ubi9 path: ${{ runner.temp }} - name: Load base image run: | - docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar + docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi9.tar - name: Build docker image working-directory: common/jenkins-agents/rust/docker run: | - docker build --tag agent-rust-test-ubi8 --file Dockerfile.ubi8 \ + docker build --tag agent-rust-test-ubi9 --file Dockerfile.ubi9 \ --build-arg rustVersion=1.88.0 \ --build-arg rustToolchain=x86_64-unknown-linux-gnu \ --build-arg cargoNextestVersion=0.9.94 \ @@ -247,10 +254,10 @@ jobs: --build-arg cargoDenyVersion=0.18.2 \ . - jenkins-agent-terraform-2306-ubi8: - name: Jenkins agent Terraform 2306 (UBI8) + jenkins-agent-terraform-2306-ubi9: + name: Jenkins agent Terraform 2306 (UBI9) runs-on: ubuntu-22.04 - needs: [ jenkins-agent-base-ubi8 ] + needs: [ jenkins-agent-base-ubi9 ] steps: - name: Checkout repository @@ -259,26 +266,26 @@ jobs: name: Download base image artifact uses: actions/download-artifact@v4.1.8 with: - name: jenkins-agent-base-ubi8 + name: jenkins-agent-base-ubi9 path: ${{ runner.temp }} - name: Load base image run: | - docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar + docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi9.tar - name: Build docker image working-directory: common/jenkins-agents/terraform-2306/docker run: | - docker build --tag agent-terraform-2306-test-ubi8 --file Dockerfile.ubi8 \ + docker build --tag agent-terraform-2306-test-ubi9 --file Dockerfile.ubi9 \ --build-arg nexusUrl=https://nexus.example.com \ --build-arg nexusAuth=developer:s3cr3t \ --build-arg NPMJS_REGISTRY_FLAG=--registry=https://registry.npmjs.org \ . - jenkins-agent-terraform-2408-ubi8: - name: Jenkins agent Terraform 2408 (UBI8) + jenkins-agent-terraform-2408-ubi9: + name: Jenkins agent Terraform 2408 (UBI9) runs-on: ubuntu-22.04 - needs: [ jenkins-agent-base-ubi8 ] + needs: [ jenkins-agent-base-ubi9 ] steps: - name: Checkout repository @@ -287,26 +294,26 @@ jobs: name: Download base image artifact uses: actions/download-artifact@v4.1.8 with: - name: jenkins-agent-base-ubi8 + name: jenkins-agent-base-ubi9 path: ${{ runner.temp }} - name: Load base image run: | - docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar + docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi9.tar - name: Build docker image working-directory: common/jenkins-agents/terraform-2408/docker run: | - docker build --tag agent-terraform-2408-test-ubi8 --file Dockerfile.ubi8 \ + docker build --tag agent-terraform-2408-test-ubi9 --file Dockerfile.ubi9 \ --build-arg nexusUrl=https://nexus.example.com \ --build-arg nexusAuth=developer:s3cr3t \ --build-arg NPMJS_REGISTRY_FLAG=--registry=https://registry.npmjs.org \ . - jenkins-agent-scala-ubi8: - name: Jenkins agent Scala (UBI8) + jenkins-agent-scala-ubi9: + name: Jenkins agent Scala (UBI9) runs-on: ubuntu-22.04 - needs: [ jenkins-agent-base-ubi8 ] + needs: [ jenkins-agent-base-ubi9 ] steps: - name: Checkout repository @@ -315,17 +322,17 @@ jobs: name: Download base image artifact uses: actions/download-artifact@v4.1.8 with: - name: jenkins-agent-base-ubi8 + name: jenkins-agent-base-ubi9 path: ${{ runner.temp }} - name: Load base image run: | - docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi8.tar + docker load --input ${{ runner.temp }}/ods-jenkins-agent-base-ubi9.tar - name: Build docker image working-directory: common/jenkins-agents/scala/docker run: | - docker build --tag agent-scala-test-ubi8 --file Dockerfile.ubi8 \ + docker build --tag agent-scala-test-ubi9 --file Dockerfile.ubi9 \ --build-arg nexusUrl=https://nexus.example.com \ --build-arg nexusUsername=developer \ --build-arg nexusPassword=s3cr3t \ @@ -334,7 +341,7 @@ jobs: cleanup-artifact: name: Cleanup base image artifact runs-on: ubuntu-22.04 - needs: [ jenkins-agent-golang-ubi8, jenkins-agent-jdk-ubi8, jenkins-agent-nodejs18-ubi8, jenkins-agent-nodejs20-ubi8, jenkins-agent-nodejs22-ubi8, jenkins-agent-nodejs24-ubi8, jenkins-agent-python-ubi8, jenkins-agent-rust-ubi8, jenkins-agent-terraform-2306-ubi8, jenkins-agent-terraform-2408-ubi8, jenkins-agent-scala-ubi8 ] + needs: [ jenkins-agent-golang-ubi9, jenkins-agent-jdk-ubi9, jenkins-agent-nodejs18-ubi9, jenkins-agent-nodejs20-ubi9, jenkins-agent-nodejs22-ubi9, jenkins-agent-nodejs24-ubi9, jenkins-agent-python-ubi9, jenkins-agent-rust-ubi9, jenkins-agent-terraform-2306-ubi9, jenkins-agent-terraform-2408-ubi9, jenkins-agent-scala-ubi9 ] if: always() steps: - @@ -346,7 +353,7 @@ jobs: const artifacts = await github.rest.actions.listArtifactsForRepo({ owner: context.repo.owner, repo: context.repo.repo, - name: 'jenkins-agent-base-ubi8' + name: 'jenkins-agent-base-ubi9' }); if (artifacts.data.artifacts.length > 0) { for (const artifact of artifacts.data.artifacts) { From ed3c49df4b2f5ddbd0aceed3e748758dcea856d3 Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Thu, 16 Apr 2026 16:21:57 +0200 Subject: [PATCH 18/24] update docs --- docs/modules/jenkins-agents/pages/jdk.adoc | 8 +++++--- docs/modules/jenkins-agents/pages/scala.adoc | 2 +- docs/modules/quickstarters/pages/be-python-flask.adoc | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/modules/jenkins-agents/pages/jdk.adoc b/docs/modules/jenkins-agents/pages/jdk.adoc index b21462cba..64e79ea85 100644 --- a/docs/modules/jenkins-agents/pages/jdk.adoc +++ b/docs/modules/jenkins-agents/pages/jdk.adoc @@ -10,22 +10,24 @@ It can be referenced in a `Jenkinsfile` with `ods/jenkins-agent-jdk`. . Nexus and HTTP proxy configuration for Maven & Gradle == Supported Java Versions -This agent provides 3 JDKs: `java 11`, `java 17` (default) and `java 21`. +This agent provides 4 JDKs: `java 11`, `java 17`, `java 21` (default) and `java 25`. For backwards compatibility `java 11` is still included. Java projects migrating from previous ODS version will require the use of the bash script `use-j11.sh` to use java 11. A migration to `java 17` and `java 21` can be done afterwards. To switch the environment to `java 11` the script `use-j11.sh` is provided at the jenkins home folder. To switch the environment to `java 17` the script `use-j17.sh` is provided at the jenkins home folder. To switch the environment to `java 21` the script `use-j21.sh` is provided at the jenkins home folder. +To switch the environment to `java 25` the script `use-j25.sh` is provided at the jenkins home folder. Following command shows how the jenkins build script from the springboot quickstarter switches the java version before calling the gradle wrapper: ``` -def status = sh(script: "$HOME/use-j21.sh && ./gradlew clean build --stacktrace --no-daemon && $HOME/use-j17.sh", returnStatus: true) +def status = sh(script: "$HOME/use-j25.sh && ./gradlew clean build --stacktrace --no-daemon && $HOME/use-j21.sh", returnStatus: true) ``` NOTE: like this example, you will need to switch back to `java 17` after running the gradlew build. This is required because the jdk agent environment still does not support the latest java version. E.g. the `sonar scanner` is not compatible with the latest java version. == Installed packages -Dockerfile.ubi8 installs: +Dockerfile.ubi9 installs: +- java-25-openjdk-devel - java-21-openjdk-devel - java-17-openjdk-devel - java-11-openjdk-devel diff --git a/docs/modules/jenkins-agents/pages/scala.adoc b/docs/modules/jenkins-agents/pages/scala.adoc index 58c864181..64c32f32f 100644 --- a/docs/modules/jenkins-agents/pages/scala.adoc +++ b/docs/modules/jenkins-agents/pages/scala.adoc @@ -26,7 +26,7 @@ NOTE: like this example, you will need to switch back to `java 17` after running == Installed packages -Dockerfile.ubi8 installs: +Dockerfile.ubi9 installs: - java-17-openjdk-devel - java-11-openjdk-devel diff --git a/docs/modules/quickstarters/pages/be-python-flask.adoc b/docs/modules/quickstarters/pages/be-python-flask.adoc index 0651760fc..a4751b393 100644 --- a/docs/modules/quickstarters/pages/be-python-flask.adoc +++ b/docs/modules/quickstarters/pages/be-python-flask.adoc @@ -129,7 +129,7 @@ If you need other versions support in your project, change: * in the provided `Jenkinsfile`, the mentions of `python3.12` binary to, for example, `python3.9` binary, -* and switch the `FROM` statement in your `Dockerfile` to the python version required, for example, `registry.access.redhat.com/ubi8/python-39`. +* and switch the `FROM` statement in your `Dockerfile` to the python version required, for example, `registry.access.redhat.com/ubi9/python-39`. == Known limitations From ba81cabf22e4dd097920661a8eba5bcaacbe0bd3 Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Thu, 16 Apr 2026 16:23:05 +0200 Subject: [PATCH 19/24] changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f9f150e8..6f28a63b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ ### Added - Added rhel9 dockerfiles for all jenkins agents ([#1140](https://github.com/opendevstack/ods-quickstarters/pull/1140)) - Test remove sonar profile check ([#1155](https://github.com/opendevstack/ods-quickstarters/pull/1155)) +- Update base java version to java 21, remove ubi8 and fix tests ([#1156](https://github.com/opendevstack/ods-quickstarters/pull/1156)) ### Changed From 5ba82ccb11ffe811924cbb4419ac8b104cfe4192 Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Thu, 16 Apr 2026 17:04:34 +0200 Subject: [PATCH 20/24] update python agent dockerfile to be aboe to run without nexus configured --- .../python/docker/Dockerfile.ubi9 | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/common/jenkins-agents/python/docker/Dockerfile.ubi9 b/common/jenkins-agents/python/docker/Dockerfile.ubi9 index 49ab6a0a6..de1e7f9a0 100644 --- a/common/jenkins-agents/python/docker/Dockerfile.ubi9 +++ b/common/jenkins-agents/python/docker/Dockerfile.ubi9 @@ -7,31 +7,33 @@ ARG nexusAuth ENV PYTHONUNBUFFERED=1 \ PYTHONIOENCODING=UTF-8 \ - UV_INDEX_URL=https://${nexusAuth}@${nexusHost}/repository/pypi-all/simple \ - PIP_TRUSTED_HOST=${nexusHost} \ UV_CA_CERTIFICATE=/etc/ssl/certs/ca-bundle.crt \ + PIP_CERT=/etc/ssl/certs/ca-bundle.crt \ PATH=$HOME/.local/bin:$JAVA_HOME/bin:$PATH \ UV_VERSION=0.10.9 -ENV UV_DEFAULT_INDEX=${UV_INDEX_URL} \ - PIP_INDEX_URL=${UV_INDEX_URL} \ - PIP_CERT=${UV_CA_CERTIFICATE} - +# Set PyPI URLs and configure Python packages RUN yum install -y autoconf automake gcc gcc-c++ openssl-devel libffi-devel && \ curl -LsSf https://astral.sh/uv/${UV_VERSION}/install.sh | sh && \ mkdir -p $HOME/.config/pip && \ echo "[global]" > $HOME/.config/pip/pip.conf && \ - echo "index-url = https://${nexusAuth}@${nexusHost}/repository/pypi-all/simple" >> $HOME/.config/pip/pip.conf && \ - echo "trusted-host = ${nexusHost}" >> $HOME/.config/pip/pip.conf && \ + if [ -n "${nexusHost}" ] && [ -n "${nexusAuth}" ]; then \ + echo "index-url = https://${nexusAuth}@${nexusHost}/repository/pypi-all/simple" >> $HOME/.config/pip/pip.conf && \ + echo "trusted-host = ${nexusHost}" >> $HOME/.config/pip/pip.conf && \ + echo "export UV_DEFAULT_INDEX=https://${nexusAuth}@${nexusHost}/repository/pypi-all/simple" > /etc/profile.d/uv-index.sh; \ + else \ + echo "export UV_DEFAULT_INDEX=https://pypi.org/simple" > /etc/profile.d/uv-index.sh; \ + fi && \ yum -y clean all -RUN for pyVersion in 3.8 3.9 3.11 3.12; do \ - uv python install $pyVersion && \ - uv pip install --verbose --system --break-system-packages --python $pyVersion --trusted-host ${nexusHost} \ - virtualenv==20.26.3 \ - setuptools==72.2.0 \ - Cython==3.0.11 \ - pypandoc==1.13; \ +RUN PACKAGES="virtualenv==20.26.3 setuptools==72.2.0 Cython==3.0.11 pypandoc==1.13" && \ + for pyVersion in 3.8 3.9 3.11 3.12; do \ + uv python install $pyVersion && \ + if [ -n "${nexusHost}" ] && [ -n "${nexusAuth}" ]; then \ + uv pip install --verbose --system --break-system-packages --python $pyVersion --trusted-host ${nexusHost} $PACKAGES; \ + else \ + uv pip install --verbose --system --break-system-packages --python $pyVersion $PACKAGES; \ + fi; \ done && \ uv tool update-shell From c6a763c289a0a7604b85d1ad5567279176c36601 Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Thu, 16 Apr 2026 17:16:57 +0200 Subject: [PATCH 21/24] update all github action versions Update ubuntu version in github actions --- .github/workflows/changelog-enforcer.yml | 4 +- .../continuous-integration-workflow.yml | 78 +++++++++---------- .../pr-e2e-codeowners-notification.yml | 6 +- 3 files changed, 44 insertions(+), 44 deletions(-) diff --git a/.github/workflows/changelog-enforcer.yml b/.github/workflows/changelog-enforcer.yml index 20287cddc..76ecdd706 100644 --- a/.github/workflows/changelog-enforcer.yml +++ b/.github/workflows/changelog-enforcer.yml @@ -8,8 +8,8 @@ jobs: changelog: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.2.2 - - uses: dangoslen/changelog-enforcer@v3 + - uses: actions/checkout@v6.0.2 + - uses: dangoslen/changelog-enforcer@v3.6.1 with: changeLogPath: 'CHANGELOG.md' skipLabels: 'skip changelog' diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index 99147b05d..ec0d0b74d 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -4,18 +4,18 @@ jobs: jenkins-agent-base-ubi9: name: Jenkins agent base (UBI9) - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Checkout ods-core repository - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v6.0.2 with: repository: ${{ github.repository_owner }}/ods-core token: ${{ secrets.GH_REPO_READ_TOKEN || github.token }} path: ods-core - name: Login to Red Hat Registry - uses: docker/login-action@v3 + uses: docker/login-action@v4.1.0 with: registry: registry.redhat.io username: ${{ secrets.REDHAT_REGISTRY_USERNAME }} @@ -31,22 +31,22 @@ jobs: docker save --output ${{ runner.temp }}/ods-jenkins-agent-base-ubi9.tar opendevstackorg/ods-jenkins-agent-base-ubi9:latest - name: Upload base image artifact - uses: actions/upload-artifact@v4.4.3 + uses: actions/upload-artifact@v7.0.1 with: name: jenkins-agent-base-ubi9 path: ${{ runner.temp }}/ods-jenkins-agent-base-ubi9.tar jenkins-agent-golang-ubi9: name: Jenkins agent Go (UBI9) - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: [ jenkins-agent-base-ubi9 ] steps: - name: Checkout repository - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v6.0.2 - name: Download base image artifact - uses: actions/download-artifact@v4.1.8 + uses: actions/download-artifact@v8.0.1 with: name: jenkins-agent-base-ubi9 path: ${{ runner.temp }} @@ -65,15 +65,15 @@ jobs: jenkins-agent-jdk-ubi9: name: Jenkins agent JDK (UBI9) - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: [ jenkins-agent-base-ubi9 ] steps: - name: Checkout repository - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v6.0.2 - name: Download base image artifact - uses: actions/download-artifact@v4.1.8 + uses: actions/download-artifact@v8.0.1 with: name: jenkins-agent-base-ubi9 path: ${{ runner.temp }} @@ -93,15 +93,15 @@ jobs: jenkins-agent-nodejs18-ubi9: name: Jenkins agent NodeJS 18 (UBI9) - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: [ jenkins-agent-base-ubi9 ] steps: - name: Checkout repository - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v6.0.2 - name: Download base image artifact - uses: actions/download-artifact@v4.1.8 + uses: actions/download-artifact@v8.0.1 with: name: jenkins-agent-base-ubi9 path: ${{ runner.temp }} @@ -120,15 +120,15 @@ jobs: jenkins-agent-nodejs20-ubi9: name: Jenkins agent NodeJS 20 (UBI9) - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: [ jenkins-agent-base-ubi9 ] steps: - name: Checkout repository - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v6.0.2 - name: Download base image artifact - uses: actions/download-artifact@v4.1.8 + uses: actions/download-artifact@v8.0.1 with: name: jenkins-agent-base-ubi9 path: ${{ runner.temp }} @@ -147,15 +147,15 @@ jobs: jenkins-agent-nodejs22-ubi9: name: Jenkins agent NodeJS 22 (UBI9) - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: [ jenkins-agent-base-ubi9 ] steps: - name: Checkout repository - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v6.0.2 - name: Download base image artifact - uses: actions/download-artifact@v4.1.8 + uses: actions/download-artifact@v8.0.1 with: name: jenkins-agent-base-ubi9 path: ${{ runner.temp }} @@ -174,15 +174,15 @@ jobs: jenkins-agent-nodejs24-ubi9: name: Jenkins agent NodeJS 24 (UBI9) - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: [ jenkins-agent-base-ubi9 ] steps: - name: Checkout repository - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v6.0.2 - name: Download base image artifact - uses: actions/download-artifact@v4.1.8 + uses: actions/download-artifact@v8.0.1 with: name: jenkins-agent-base-ubi9 path: ${{ runner.temp }} @@ -201,15 +201,15 @@ jobs: jenkins-agent-python-ubi9: name: Jenkins agent Python (UBI9) - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: [ jenkins-agent-base-ubi9 ] steps: - name: Checkout repository - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v6.0.2 - name: Download base image artifact - uses: actions/download-artifact@v4.1.8 + uses: actions/download-artifact@v8.0.1 with: name: jenkins-agent-base-ubi9 path: ${{ runner.temp }} @@ -225,15 +225,15 @@ jobs: jenkins-agent-rust-ubi9: name: Jenkins agent Rust (UBI9) - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: [ jenkins-agent-base-ubi9 ] steps: - name: Checkout repository - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v6.0.2 - name: Download base image artifact - uses: actions/download-artifact@v4.1.8 + uses: actions/download-artifact@v8.0.1 with: name: jenkins-agent-base-ubi9 path: ${{ runner.temp }} @@ -256,15 +256,15 @@ jobs: jenkins-agent-terraform-2306-ubi9: name: Jenkins agent Terraform 2306 (UBI9) - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: [ jenkins-agent-base-ubi9 ] steps: - name: Checkout repository - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v6.0.2 - name: Download base image artifact - uses: actions/download-artifact@v4.1.8 + uses: actions/download-artifact@v8.0.1 with: name: jenkins-agent-base-ubi9 path: ${{ runner.temp }} @@ -284,15 +284,15 @@ jobs: jenkins-agent-terraform-2408-ubi9: name: Jenkins agent Terraform 2408 (UBI9) - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: [ jenkins-agent-base-ubi9 ] steps: - name: Checkout repository - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v6.0.2 - name: Download base image artifact - uses: actions/download-artifact@v4.1.8 + uses: actions/download-artifact@v8.0.1 with: name: jenkins-agent-base-ubi9 path: ${{ runner.temp }} @@ -312,15 +312,15 @@ jobs: jenkins-agent-scala-ubi9: name: Jenkins agent Scala (UBI9) - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: [ jenkins-agent-base-ubi9 ] steps: - name: Checkout repository - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v6.0.2 - name: Download base image artifact - uses: actions/download-artifact@v4.1.8 + uses: actions/download-artifact@v8.0.1 with: name: jenkins-agent-base-ubi9 path: ${{ runner.temp }} @@ -340,13 +340,13 @@ jobs: cleanup-artifact: name: Cleanup base image artifact - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: [ jenkins-agent-golang-ubi9, jenkins-agent-jdk-ubi9, jenkins-agent-nodejs18-ubi9, jenkins-agent-nodejs20-ubi9, jenkins-agent-nodejs22-ubi9, jenkins-agent-nodejs24-ubi9, jenkins-agent-python-ubi9, jenkins-agent-rust-ubi9, jenkins-agent-terraform-2306-ubi9, jenkins-agent-terraform-2408-ubi9, jenkins-agent-scala-ubi9 ] if: always() steps: - name: Delete artifact - uses: actions/github-script@v7 + uses: actions/github-script@v9.0.0 with: script: | try { diff --git a/.github/workflows/pr-e2e-codeowners-notification.yml b/.github/workflows/pr-e2e-codeowners-notification.yml index 9cd498676..2dd7dcf38 100644 --- a/.github/workflows/pr-e2e-codeowners-notification.yml +++ b/.github/workflows/pr-e2e-codeowners-notification.yml @@ -11,10 +11,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v6.0.2 - name: Check for changes in CODEOWNERS paths - uses: dorny/paths-filter@v3 + uses: dorny/paths-filter@v4.0.1 id: filter with: filters: | @@ -25,7 +25,7 @@ jobs: - name: Post notification comment if: steps.filter.outputs.owned_paths == 'true' - uses: actions/github-script@v7 + uses: actions/github-script@v9.0.0 with: script: | github.rest.issues.createComment({ From 89ef14414d6d7e5eb299e4c87473b4e9c8c03bf4 Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Fri, 17 Apr 2026 11:54:07 +0200 Subject: [PATCH 22/24] fix: update pip install command to include index-url for nexus authentication --- common/jenkins-agents/python/docker/Dockerfile.ubi9 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/jenkins-agents/python/docker/Dockerfile.ubi9 b/common/jenkins-agents/python/docker/Dockerfile.ubi9 index de1e7f9a0..aa573ad74 100644 --- a/common/jenkins-agents/python/docker/Dockerfile.ubi9 +++ b/common/jenkins-agents/python/docker/Dockerfile.ubi9 @@ -30,7 +30,7 @@ RUN PACKAGES="virtualenv==20.26.3 setuptools==72.2.0 Cython==3.0.11 pypandoc==1. for pyVersion in 3.8 3.9 3.11 3.12; do \ uv python install $pyVersion && \ if [ -n "${nexusHost}" ] && [ -n "${nexusAuth}" ]; then \ - uv pip install --verbose --system --break-system-packages --python $pyVersion --trusted-host ${nexusHost} $PACKAGES; \ + uv pip install --verbose --system --break-system-packages --python $pyVersion --index-url https://${nexusAuth}@${nexusHost}/repository/pypi-all/simple --trusted-host ${nexusHost} $PACKAGES; \ else \ uv pip install --verbose --system --break-system-packages --python $pyVersion $PACKAGES; \ fi; \ From 5d5dec196d504450bad9dd8aa11ecd604f46301e Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Fri, 17 Apr 2026 12:17:38 +0200 Subject: [PATCH 23/24] fix: update Dockerfile to conditionally set pip index URL and trusted host for nexus authentication --- .../terraform-2306/docker/Dockerfile.ubi9 | 35 +++++++++++-------- .../terraform-2408/docker/Dockerfile.ubi9 | 31 ++++++++-------- 2 files changed, 38 insertions(+), 28 deletions(-) diff --git a/common/jenkins-agents/terraform-2306/docker/Dockerfile.ubi9 b/common/jenkins-agents/terraform-2306/docker/Dockerfile.ubi9 index ff8d0584c..dc54aae86 100644 --- a/common/jenkins-agents/terraform-2306/docker/Dockerfile.ubi9 +++ b/common/jenkins-agents/terraform-2306/docker/Dockerfile.ubi9 @@ -33,14 +33,8 @@ ENV TERRAFORM_VERSION=1.4.6 \ RBENV_ROOT=/opt/rbenv \ RBENV_SHELL=bash \ NPM_CONFIG_CAFILE=/etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem \ - UV_INDEX_URL=https://${nexusAuth}@${nexusHost}/repository/pypi-all/simple \ - PIP_TRUSTED_HOST=${nexusHost} \ - UV_CA_CERTIFICATE=/etc/ssl/certs/ca-bundle.crt - - -ENV UV_DEFAULT_INDEX=${UV_INDEX_URL} \ - PIP_INDEX_URL=${UV_INDEX_URL} \ - PIP_CERT=${UV_CA_CERTIFICATE} + UV_CA_CERTIFICATE=/etc/ssl/certs/ca-bundle.crt \ + PIP_CERT=/etc/ssl/certs/ca-bundle.crt ENV INSTALL_PKGS="yum-utils gcc make git-core zlib zlib-devel gcc-c++ patch \ readline \ @@ -72,15 +66,28 @@ RUN set -x \ RUN curl -LsSf https://astral.sh/uv/${UV_VERSION}/install.sh | sh && \ mkdir -p $HOME/.config/pip && \ echo "[global]" > $HOME/.config/pip/pip.conf && \ - echo "index-url = https://${nexusAuth}@${nexusHost}/repository/pypi-all/simple" >> $HOME/.config/pip/pip.conf && \ - echo "trusted-host = ${nexusHost}" >> $HOME/.config/pip/pip.conf + if [ -n "${nexusHost}" ] && [ -n "${nexusAuth}" ]; then \ + echo "index-url = https://${nexusAuth}@${nexusHost}/repository/pypi-all/simple" >> $HOME/.config/pip/pip.conf && \ + echo "trusted-host = ${nexusHost}" >> $HOME/.config/pip/pip.conf && \ + echo "export UV_DEFAULT_INDEX=https://${nexusAuth}@${nexusHost}/repository/pypi-all/simple" > /etc/profile.d/uv-index.sh; \ + else \ + echo "export UV_DEFAULT_INDEX=https://pypi.org/simple" > /etc/profile.d/uv-index.sh; \ + fi && \ + yum -y clean all RUN for pyVersion in 3.8 3.9 3.11; do \ uv python install $pyVersion && \ - uv pip install --verbose --system --break-system-packages --python $pyVersion --trusted-host ${nexusHost} --prerelease=allow \ - virtualenv \ - pycodestyle \ - -r /tmp/requirements.txt; \ + if [ -n "${nexusHost}" ] && [ -n "${nexusAuth}" ]; then \ + uv pip install --verbose --system --break-system-packages --python $pyVersion --index-url https://${nexusAuth}@${nexusHost}/repository/pypi-all/simple --trusted-host ${nexusHost} --prerelease=allow \ + virtualenv \ + pycodestyle \ + -r /tmp/requirements.txt; \ + else \ + uv pip install --verbose --system --break-system-packages --python $pyVersion --prerelease=allow \ + virtualenv \ + pycodestyle \ + -r /tmp/requirements.txt; \ + fi; \ done && \ rm -f /tmp/requirements.txt && \ uv python pin 3.11 && \ diff --git a/common/jenkins-agents/terraform-2408/docker/Dockerfile.ubi9 b/common/jenkins-agents/terraform-2408/docker/Dockerfile.ubi9 index 1ceb13e81..6f71ca6cd 100644 --- a/common/jenkins-agents/terraform-2408/docker/Dockerfile.ubi9 +++ b/common/jenkins-agents/terraform-2408/docker/Dockerfile.ubi9 @@ -38,14 +38,8 @@ ENV TERRAFORM_VERSION=1.9.4 \ TASK_VERSION=3.38.0 \ UV_VERSION=0.10.9 \ NPM_CONFIG_CAFILE=/etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem \ - UV_INDEX_URL=https://${nexusAuth}@${nexusHost}/repository/pypi-all/simple \ - PIP_TRUSTED_HOST=${nexusHost} \ - UV_CA_CERTIFICATE=/etc/ssl/certs/ca-bundle.crt - - -ENV UV_DEFAULT_INDEX=${UV_INDEX_URL} \ - PIP_INDEX_URL=${UV_INDEX_URL} \ - PIP_CERT=${UV_CA_CERTIFICATE} + UV_CA_CERTIFICATE=/etc/ssl/certs/ca-bundle.crt \ + PIP_CERT=/etc/ssl/certs/ca-bundle.crt ENV INSTALL_PKGS="yum-utils gcc make git-core zlib zlib-devel gcc-c++ patch \ readline \ @@ -76,15 +70,24 @@ RUN set -x \ RUN curl -LsSf https://astral.sh/uv/${UV_VERSION}/install.sh | sh && \ mkdir -p $HOME/.config/pip && \ echo "[global]" > $HOME/.config/pip/pip.conf && \ - echo "index-url = https://${nexusAuth}@${nexusHost}/repository/pypi-all/simple" >> $HOME/.config/pip/pip.conf && \ - echo "trusted-host = ${nexusHost}" >> $HOME/.config/pip/pip.conf + if [ -n "${nexusHost}" ] && [ -n "${nexusAuth}" ]; then \ + echo "index-url = https://${nexusAuth}@${nexusHost}/repository/pypi-all/simple" >> $HOME/.config/pip/pip.conf && \ + echo "trusted-host = ${nexusHost}" >> $HOME/.config/pip/pip.conf; \ + fi RUN for pyVersion in 3.9 3.11 3.12; do \ uv python install $pyVersion && \ - uv pip install --verbose --system --break-system-packages --python $pyVersion --trusted-host ${nexusHost} --prerelease=allow \ - virtualenv \ - pycodestyle \ - -r /tmp/requirements.txt; \ + if [ -n "${nexusHost}" ] && [ -n "${nexusAuth}" ]; then \ + uv pip install --verbose --system --break-system-packages --python $pyVersion --index-url https://${nexusAuth}@${nexusHost}/repository/pypi-all/simple --trusted-host ${nexusHost} --prerelease=allow \ + virtualenv \ + pycodestyle \ + -r /tmp/requirements.txt; \ + else \ + uv pip install --verbose --system --break-system-packages --python $pyVersion --prerelease=allow \ + virtualenv \ + pycodestyle \ + -r /tmp/requirements.txt; \ + fi; \ done && \ rm -f /tmp/requirements.txt && \ uv python pin 3.12 && \ From 96bab75fec4a09d09537dd6a0e9c7bc46446c3b6 Mon Sep 17 00:00:00 2001 From: "Vazquez,Brais (IT EDP)" Date: Fri, 17 Apr 2026 13:20:00 +0200 Subject: [PATCH 24/24] remove verbose --- common/jenkins-agents/python/docker/Dockerfile.ubi9 | 4 ++-- common/jenkins-agents/terraform-2306/docker/Dockerfile.ubi9 | 4 ++-- common/jenkins-agents/terraform-2408/docker/Dockerfile.ubi9 | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/common/jenkins-agents/python/docker/Dockerfile.ubi9 b/common/jenkins-agents/python/docker/Dockerfile.ubi9 index aa573ad74..012837d92 100644 --- a/common/jenkins-agents/python/docker/Dockerfile.ubi9 +++ b/common/jenkins-agents/python/docker/Dockerfile.ubi9 @@ -30,9 +30,9 @@ RUN PACKAGES="virtualenv==20.26.3 setuptools==72.2.0 Cython==3.0.11 pypandoc==1. for pyVersion in 3.8 3.9 3.11 3.12; do \ uv python install $pyVersion && \ if [ -n "${nexusHost}" ] && [ -n "${nexusAuth}" ]; then \ - uv pip install --verbose --system --break-system-packages --python $pyVersion --index-url https://${nexusAuth}@${nexusHost}/repository/pypi-all/simple --trusted-host ${nexusHost} $PACKAGES; \ + uv pip install --system --break-system-packages --python $pyVersion --index-url https://${nexusAuth}@${nexusHost}/repository/pypi-all/simple --trusted-host ${nexusHost} $PACKAGES; \ else \ - uv pip install --verbose --system --break-system-packages --python $pyVersion $PACKAGES; \ + uv pip install --system --break-system-packages --python $pyVersion $PACKAGES; \ fi; \ done && \ uv tool update-shell diff --git a/common/jenkins-agents/terraform-2306/docker/Dockerfile.ubi9 b/common/jenkins-agents/terraform-2306/docker/Dockerfile.ubi9 index dc54aae86..289f0e630 100644 --- a/common/jenkins-agents/terraform-2306/docker/Dockerfile.ubi9 +++ b/common/jenkins-agents/terraform-2306/docker/Dockerfile.ubi9 @@ -78,12 +78,12 @@ RUN curl -LsSf https://astral.sh/uv/${UV_VERSION}/install.sh | sh && \ RUN for pyVersion in 3.8 3.9 3.11; do \ uv python install $pyVersion && \ if [ -n "${nexusHost}" ] && [ -n "${nexusAuth}" ]; then \ - uv pip install --verbose --system --break-system-packages --python $pyVersion --index-url https://${nexusAuth}@${nexusHost}/repository/pypi-all/simple --trusted-host ${nexusHost} --prerelease=allow \ + uv pip install --system --break-system-packages --python $pyVersion --index-url https://${nexusAuth}@${nexusHost}/repository/pypi-all/simple --trusted-host ${nexusHost} --prerelease=allow \ virtualenv \ pycodestyle \ -r /tmp/requirements.txt; \ else \ - uv pip install --verbose --system --break-system-packages --python $pyVersion --prerelease=allow \ + uv pip install --system --break-system-packages --python $pyVersion --prerelease=allow \ virtualenv \ pycodestyle \ -r /tmp/requirements.txt; \ diff --git a/common/jenkins-agents/terraform-2408/docker/Dockerfile.ubi9 b/common/jenkins-agents/terraform-2408/docker/Dockerfile.ubi9 index 6f71ca6cd..43c6b83fc 100644 --- a/common/jenkins-agents/terraform-2408/docker/Dockerfile.ubi9 +++ b/common/jenkins-agents/terraform-2408/docker/Dockerfile.ubi9 @@ -78,12 +78,12 @@ RUN curl -LsSf https://astral.sh/uv/${UV_VERSION}/install.sh | sh && \ RUN for pyVersion in 3.9 3.11 3.12; do \ uv python install $pyVersion && \ if [ -n "${nexusHost}" ] && [ -n "${nexusAuth}" ]; then \ - uv pip install --verbose --system --break-system-packages --python $pyVersion --index-url https://${nexusAuth}@${nexusHost}/repository/pypi-all/simple --trusted-host ${nexusHost} --prerelease=allow \ + uv pip install --system --break-system-packages --python $pyVersion --index-url https://${nexusAuth}@${nexusHost}/repository/pypi-all/simple --trusted-host ${nexusHost} --prerelease=allow \ virtualenv \ pycodestyle \ -r /tmp/requirements.txt; \ else \ - uv pip install --verbose --system --break-system-packages --python $pyVersion --prerelease=allow \ + uv pip install --system --break-system-packages --python $pyVersion --prerelease=allow \ virtualenv \ pycodestyle \ -r /tmp/requirements.txt; \