You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kie.apache.org by ed...@apache.org on 2025/06/03 14:31:06 UTC
(incubator-kie-tools) branch 10.1.x updated: Jenkins Pipelines - Added new 6 jobs that were missing with code reference at getUpstreamImagesArtifactsList and blocking the release pipeline - jobs: kogito-data-index-ephemeral-image kogito-data-index-postgresql-image kogito-jobs-service-allinone-image kogito-jobs-service-ephemeral-image kogito-jobs-service-postgresql-image kogito-jit-runner-image
This is an automated email from the ASF dual-hosted git repository.
eduardocerqueira pushed a commit to branch 10.1.x
in repository https://gitbox.apache.org/repos/asf/incubator-kie-tools.git
The following commit(s) were added to refs/heads/10.1.x by this push:
new 39ed931ebd7 Jenkins Pipelines - Added new 6 jobs that were missing with code reference at getUpstreamImagesArtifactsList and blocking the release pipeline - jobs: kogito-data-index-ephemeral-image kogito-data-index-postgresql-image kogito-jobs-service-allinone-image kogito-jobs-service-ephemeral-image kogito-jobs-service-postgresql-image kogito-jit-runner-image
39ed931ebd7 is described below
commit 39ed931ebd76a05d3da8395d6e354dfd0f6d0027
Author: Eduardo Cerqueira <ed...@aletyx.ai>
AuthorDate: Tue Jun 3 10:30:38 2025 -0400
Jenkins Pipelines
- Added new 6 jobs that were missing with code reference at getUpstreamImagesArtifactsList and blocking the release pipeline
- jobs:
kogito-data-index-ephemeral-image
kogito-data-index-postgresql-image
kogito-jobs-service-allinone-image
kogito-jobs-service-ephemeral-image
kogito-jobs-service-postgresql-image
kogito-jit-runner-image
---
.ci/jenkins/Jenkinsfile.release-build | 162 +++++++++++++++++-
.ci/jenkins/Jenkinsfile.release-candidate | 2 +-
.ci/jenkins/release-jobs/Jenkinsfile.kie-sandbox | 2 +-
.../Jenkinsfile.kogito-data-index-ephemeral-image | 181 +++++++++++++++++++++
.../Jenkinsfile.kogito-data-index-postgresql-image | 181 +++++++++++++++++++++
.../Jenkinsfile.kogito-jit-runner-image | 181 +++++++++++++++++++++
.../Jenkinsfile.kogito-jobs-service-allinone-image | 181 +++++++++++++++++++++
...Jenkinsfile.kogito-jobs-service-ephemeral-image | 181 +++++++++++++++++++++
...enkinsfile.kogito-jobs-service-postgresql-image | 181 +++++++++++++++++++++
.ci/jenkins/shared-scripts/releaseUtils.groovy | 14 +-
10 files changed, 1254 insertions(+), 12 deletions(-)
diff --git a/.ci/jenkins/Jenkinsfile.release-build b/.ci/jenkins/Jenkinsfile.release-build
index a5abbe2d728..c0d2b71ba4b 100644
--- a/.ci/jenkins/Jenkinsfile.release-build
+++ b/.ci/jenkins/Jenkinsfile.release-build
@@ -36,7 +36,7 @@ pipeline {
string(name: 'BASE_REF', description: 'GitHub Base Ref (tag or branch)')
string(name: 'RELEASE_VERSION', description: 'Release Version', defaultValue: '0.0.0')
string(name: 'UPLOAD_ASSET_URL', description: 'Upload asset url', defaultValue: '')
- string(name: 'RUNNERS', description: 'Runners', defaultValue: '{"chrome_extensions":"false","cors_proxy_image":"false","dashbuilder_viewer_image":"false","dev_deployment_base_image":"false","dev_deployment_dmn_form_webapp_image":"false","dev_deployment_quakus_blank_app_image":"false","dev_deployment_upload_service":"false","extended_services":"false","jbpm_quarkus_devui":"false","kie_sandbox_image":"false","kie_sandbox_accelerator_quarkus":"false","kie_sandbox_extended_services": [...]
+ string(name: 'RUNNERS', description: 'Runners', defaultValue: '{"chrome_extensions":"false","cors_proxy_image":"false","dashbuilder_viewer_image":"false","dev_deployment_base_image":"false","dev_deployment_dmn_form_webapp_image":"false","dev_deployment_quakus_blank_app_image":"false","dev_deployment_upload_service":"false","extended_services":"false","jbpm_quarkus_devui":"false","kie_sandbox_image":"false","kie_sandbox_accelerator_quarkus":"false","kie_sandbox_extended_services": [...]
string(name: 'RELEASE_CANDIDATE_VERSION', description: 'Release Candidate Version', defaultValue: '')
}
@@ -99,6 +99,72 @@ pipeline {
}
}
+ stage('KIE Kogito Data Index Ephemeral Image') {
+ when {
+ expression { env.KOGITO_DATA_INDEX_EPHEMERAL_IMAGE == 'true' }
+ }
+ steps {
+ script {
+ kogitoDataIndexEphemeralImageBuildJob()
+ }
+ }
+ }
+
+ stage('KIE Kogito Data Index Postgresql Image') {
+ when {
+ expression { env.KOGITO_DATA_INDEX_POSTGRESQL_IMAGE == 'true' }
+ }
+ steps {
+ script {
+ kogitoDataIndexPostgresqlImageBuildJob()
+ }
+ }
+ }
+
+ stage('KIE Kogito Jobs Service Allinone Image') {
+ when {
+ expression { env.KOGITO_JOBS_SERVICE_ALLINONE_IMAGE == 'true' }
+ }
+ steps {
+ script {
+ kogitoJobsServiceAllinoneImageBuildJob()
+ }
+ }
+ }
+
+ stage('KIE Kogito Jobs Service Ephemeral Image') {
+ when {
+ expression { env.KOGITO_JOBS_SERVICE_EPHEMERAL_IMAGE == 'true' }
+ }
+ steps {
+ script {
+ kogitoJobsServiceEphemeralImageBuildJob()
+ }
+ }
+ }
+
+ stage('KIE Kogito Jobs Service Postgresql Image') {
+ when {
+ expression { env.KOGITO_JOBS_SERVICE_POSTGRESQL_IMAGE == 'true' }
+ }
+ steps {
+ script {
+ kogitoJobsServicePostgresqlImageBuildJob()
+ }
+ }
+ }
+
+ stage('KIE Kogito Jit Runner Image') {
+ when {
+ expression { env.KOGITO_JIT_RUNNER_IMAGE == 'true' }
+ }
+ steps {
+ script {
+ kogitoJitRunnerImageBuildJob()
+ }
+ }
+ }
+
stage('KIE Sandbox Accelerator Quarkus') {
when {
expression { env.KIE_SANDBOX_ACCELERATOR_QUARKUS == 'true' }
@@ -475,8 +541,14 @@ def setRunners() {
env.KIE_SANDBOX_ACCELERATOR_QUARKUS = runners.kie_sandbox_accelerator_quarkus
env.KIE_SANDBOX_EXTENDED_SERVICES = runners.kie_sandbox_extended_services
env.KIE_SANDBOX_HELM_CHART = runners.kie_sandbox_helm_chart
- env.KN_PLUGIN_WORKFLOW = runners.kn_plugin_workflow
- env.KOGITO_BASE_BUILDER_IMAGE = runners.kogito_base_builder_image
+ env.KN_PLUGIN_WORKFLOW = runners.kn_plugin_workflow
+ env.KOGITO_BASE_BUILDER_IMAGE = runners.kogito_base_builder_image
+ env.KOGITO_DATA_INDEX_EPHEMERAL_IMAGE = runners.kogito_data_index_ephemeral_image
+ env.KOGITO_DATA_INDEX_POSTGRESQL_IMAGE = runners.kogito_data_index_postgresql_image
+ env.KOGITO_JOBS_SERVICE_ALLINONE_IMAGE = runners.kogito_jobs_service_allinone_image
+ env.KOGITO_JOBS_SERVICE_EPHEMERAL_IMAGE = runners.kogito_jobs_service_ephemeral_image
+ env.KOGITO_JOBS_SERVICE_POSTGRESQL_IMAGE = runners.kogito_jobs_service_postgresql_image
+ env.KOGITO_JIT_RUNNER_IMAGE = runners.kogito_jit_runner_image
env.KOGITO_DB_MIGRATOR_TOOL = runners.kogito_db_migrator_tool
env.KOGITO_MANAGEMENT_CONSOLE = runners.kogito_management_console
env.KOGITO_SERVERLESS_OPERATOR = runners.kogito_serverless_operator
@@ -514,6 +586,12 @@ def printRunners() {
echo "kie_sandbox_helm_chart: ${env.KIE_SANDBOX_HELM_CHART}"
echo "kn_plugin_workflow: ${env.KN_PLUGIN_WORKFLOW}"
echo "kogito_base_builder_image: ${env.KOGITO_BASE_BUILDER_IMAGE}"
+ echo "kogito_data_index_ephemeral_image: ${env.KOGITO_DATA_INDEX_EPHEMERAL_IMAGE}"
+ echo "kogito_data_index_postgresql_image: ${env.KOGITO_DATA_INDEX_POSTGRESQL_IMAGE}"
+ echo "kogito_jobs_service_allinone_image: ${env.KOGITO_JOBS_SERVICE_ALLINONE_IMAGE}"
+ echo "kogito_jobs_service_ephemeral_image: ${env.KOGITO_JOBS_SERVICE_EPHEMERAL_IMAGE}"
+ echo "kogito_jobs_service_postgresql_image: ${env.KOGITO_JOBS_SERVICE_POSTGRESQL_IMAGE}"
+ echo "kogito_jit_runner_image: ${env.KOGITO_JIT_RUNNER_IMAGE}"
echo "kogito_db_migrator_tool: ${env.KOGITO_DB_MIGRATOR_TOOL}"
echo "kogito_management_console: ${env.KOGITO_MANAGEMENT_CONSOLE}"
echo "kogito_serverless_operator: ${env.KOGITO_SERVERLESS_OPERATOR}"
@@ -547,6 +625,84 @@ def kogitoBaseBuilderImageBuildJob() {
).result
}
+def kogitoDataIndexEphemeralImageBuildJob() {
+ env.KOGITO_DATA_INDEX_EPHEMERAL_IMAGE_JOB_RESULT = build(
+ job: "KIE/kie-tools/${params.PIPELINE_PATH}/individual-release-artifacts-jobs/kogito-data-index-ephemeral-image",
+ parameters: [
+ booleanParam(name: 'DRY_RUN', value: "${params.DRY_RUN}"),
+ string(name: 'BASE_REF', value: "${params.BASE_REF}"),
+ string(name: 'RELEASE_VERSION', value: "${params.RELEASE_VERSION}"),
+ string(name: 'RELEASE_CANDIDATE_VERSION', value: "${params.RELEASE_CANDIDATE_VERSION}"),
+ string(name: 'PIPELINE_PATH', value: "${params.PIPELINE_PATH}")
+ ]
+ ).result
+}
+
+def kogitoDataIndexPostgresqlImageBuildJob() {
+ env.KOGITO_DATA_INDEX_POSTGRESQL_IMAGE_JOB_RESULT = build(
+ job: "KIE/kie-tools/${params.PIPELINE_PATH}/individual-release-artifacts-jobs/kogito-data-index-postgresql-image",
+ parameters: [
+ booleanParam(name: 'DRY_RUN', value: "${params.DRY_RUN}"),
+ string(name: 'BASE_REF', value: "${params.BASE_REF}"),
+ string(name: 'RELEASE_VERSION', value: "${params.RELEASE_VERSION}"),
+ string(name: 'RELEASE_CANDIDATE_VERSION', value: "${params.RELEASE_CANDIDATE_VERSION}"),
+ string(name: 'PIPELINE_PATH', value: "${params.PIPELINE_PATH}")
+ ]
+ ).result
+}
+
+def kogitoJobsServiceAllinoneImageBuildJob() {
+ env.KOGITO_JOBS_SERVICE_ALLINONE_IMAGE_JOB_RESULT = build(
+ job: "KIE/kie-tools/${params.PIPELINE_PATH}/individual-release-artifacts-jobs/kogito-jobs-service-allinone-image",
+ parameters: [
+ booleanParam(name: 'DRY_RUN', value: "${params.DRY_RUN}"),
+ string(name: 'BASE_REF', value: "${params.BASE_REF}"),
+ string(name: 'RELEASE_VERSION', value: "${params.RELEASE_VERSION}"),
+ string(name: 'RELEASE_CANDIDATE_VERSION', value: "${params.RELEASE_CANDIDATE_VERSION}"),
+ string(name: 'PIPELINE_PATH', value: "${params.PIPELINE_PATH}")
+ ]
+ ).result
+}
+
+def kogitoJobsServiceEphemeralImageBuildJob() {
+ env.KOGITO_JOBS_SERVICE_EPHEMERAL_IMAGE_JOB_RESULT = build(
+ job: "KIE/kie-tools/${params.PIPELINE_PATH}/individual-release-artifacts-jobs/kogito-jobs-service-ephemeral-image",
+ parameters: [
+ booleanParam(name: 'DRY_RUN', value: "${params.DRY_RUN}"),
+ string(name: 'BASE_REF', value: "${params.BASE_REF}"),
+ string(name: 'RELEASE_VERSION', value: "${params.RELEASE_VERSION}"),
+ string(name: 'RELEASE_CANDIDATE_VERSION', value: "${params.RELEASE_CANDIDATE_VERSION}"),
+ string(name: 'PIPELINE_PATH', value: "${params.PIPELINE_PATH}")
+ ]
+ ).result
+}
+
+def kogitoJobsServicePostgresqlImageBuildJob() {
+ env.KOGITO_JOBS_SERVICE_POSTGRESQL_IMAGE_JOB_RESULT = build(
+ job: "KIE/kie-tools/${params.PIPELINE_PATH}/individual-release-artifacts-jobs/kogito-jobs-service-postgresql-image",
+ parameters: [
+ booleanParam(name: 'DRY_RUN', value: "${params.DRY_RUN}"),
+ string(name: 'BASE_REF', value: "${params.BASE_REF}"),
+ string(name: 'RELEASE_VERSION', value: "${params.RELEASE_VERSION}"),
+ string(name: 'RELEASE_CANDIDATE_VERSION', value: "${params.RELEASE_CANDIDATE_VERSION}"),
+ string(name: 'PIPELINE_PATH', value: "${params.PIPELINE_PATH}")
+ ]
+ ).result
+}
+
+def kogitoJitRunnerImageBuildJob() {
+ env.KOGITO_JIT_RUNNER_IMAGE_JOB_RESULT = build(
+ job: "KIE/kie-tools/${params.PIPELINE_PATH}/individual-release-artifacts-jobs/kogito-jit-runner-image",
+ parameters: [
+ booleanParam(name: 'DRY_RUN', value: "${params.DRY_RUN}"),
+ string(name: 'BASE_REF', value: "${params.BASE_REF}"),
+ string(name: 'RELEASE_VERSION', value: "${params.RELEASE_VERSION}"),
+ string(name: 'RELEASE_CANDIDATE_VERSION', value: "${params.RELEASE_CANDIDATE_VERSION}"),
+ string(name: 'PIPELINE_PATH', value: "${params.PIPELINE_PATH}")
+ ]
+ ).result
+}
+
def devDeploymentQuarkusBlankAppImageBuildJob() {
env.DEV_DEPLOYMENT_QUARKUS_BLANK_APP_IMAGE_JOB_RESULT = build(
job: "KIE/kie-tools/${params.PIPELINE_PATH}/individual-release-artifacts-jobs/dev-deployment-quarkus-blank-app-image",
diff --git a/.ci/jenkins/Jenkinsfile.release-candidate b/.ci/jenkins/Jenkinsfile.release-candidate
index d9a913aa9a2..1723bc63bd8 100644
--- a/.ci/jenkins/Jenkinsfile.release-candidate
+++ b/.ci/jenkins/Jenkinsfile.release-candidate
@@ -39,7 +39,7 @@ pipeline {
string(name: 'RELEASE_VERSION', description: 'Release version', trim: true, defaultValue: '10.1.0')
string(name: 'RELEASE_CANDIDATE_VERSION', description: 'Release candidate version', trim: true, defaultValue: '10.1.0-rc1')
string(name: 'TAG_NAME', description: 'Tag name to be created', trim: true, defaultValue: '10.1.0-rc1')
- string(description: 'Runners', name: 'RUNNERS', defaultValue: '{"chrome_extensions":"true","cors_proxy_image":"true","dashbuilder_viewer_image":"true","dev_deployment_base_image":"true","dev_deployment_dmn_form_webapp_image":"true","dev_deployment_quakus_blank_app_image":"true","dev_deployment_upload_service":"true","extended_services":"true","jbpm_quarkus_devui":"true","kie_sandbox_image":"true","kie_sandbox_accelerator_quarkus":"true","kie_sandbox_extended_services":"true","kie [...]
+ string(name: 'RUNNERS', description: 'Runners', defaultValue: '{"chrome_extensions":"true","cors_proxy_image":"true","dashbuilder_viewer_image":"true","dev_deployment_base_image":"true","dev_deployment_dmn_form_webapp_image":"true","dev_deployment_quakus_blank_app_image":"true","dev_deployment_upload_service":"true","extended_services":"true","jbpm_quarkus_devui":"true","kie_sandbox_image":"true","kie_sandbox_accelerator_quarkus":"true","kie_sandbox_extended_services":"true","kie [...]
string(name: 'PIPELINE_PATH', description: 'Path to run the pipeline', defaultValue: '10.1.x/release')
}
diff --git a/.ci/jenkins/release-jobs/Jenkinsfile.kie-sandbox b/.ci/jenkins/release-jobs/Jenkinsfile.kie-sandbox
index 0432b7968b0..fd8970b0070 100644
--- a/.ci/jenkins/release-jobs/Jenkinsfile.kie-sandbox
+++ b/.ci/jenkins/release-jobs/Jenkinsfile.kie-sandbox
@@ -70,7 +70,7 @@ pipeline {
PNPM_FILTER_STRING = '-F @kie-tools/kie-sandbox-webapp-image...'
- MAVEN_ARGS = "-Dmaven.repo.local=${WORKSPACE}/.maven"
+ MAVEN_ARGS = "-B -s ${WORKSPACE}/kie-settings.xml"
}
stages {
diff --git a/.ci/jenkins/release-jobs/Jenkinsfile.kogito-data-index-ephemeral-image b/.ci/jenkins/release-jobs/Jenkinsfile.kogito-data-index-ephemeral-image
new file mode 100644
index 00000000000..a3043f5fafd
--- /dev/null
+++ b/.ci/jenkins/release-jobs/Jenkinsfile.kogito-data-index-ephemeral-image
@@ -0,0 +1,181 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+pipeline {
+ agent {
+ docker {
+ image 'docker.io/apache/incubator-kie-tools-ci-build:10.1.999'
+ args '--shm-size=2g --privileged --group-add docker'
+ }
+ }
+
+ options {
+ timeout(time: 60, unit: 'MINUTES')
+ }
+
+ parameters {
+ booleanParam(name: 'DRY_RUN', description: 'Dry run', defaultValue: true)
+ string(name: 'RELEASE_VERSION', description: 'Release Version', defaultValue: '0.0.0')
+ string(name: 'BASE_REF', description: 'GitHub Base Ref (tag or branch)')
+ string(name: 'RELEASE_CANDIDATE_VERSION', description: 'Release Candidate Version', defaultValue: '')
+ string(name: 'PIPELINE_PATH', description: 'Path to run the pipeline')
+ }
+
+ environment {
+ KIE_TOOLS_BUILD__runLinters = 'false'
+ KIE_TOOLS_BUILD__runTests = 'false'
+ KIE_TOOLS_BUILD__runEndToEndTests = 'false'
+ KIE_TOOLS_BUILD__buildContainerImages = 'true'
+
+ KOGITO_DATA_INDEX_EPHEMERAL_IMAGE__registry = 'docker.io'
+ KOGITO_DATA_INDEX_EPHEMERAL_IMAGE__account = 'apache'
+ KOGITO_DATA_INDEX_EPHEMERAL_IMAGE__name = 'incubator-kie-kogito-data-index-ephemeral'
+ KOGITO_DATA_INDEX_EPHEMERAL_IMAGE__buildTag = "${params.RELEASE_VERSION}"
+
+ RELEASE_ARTIFACTS_DIR = "${WORKSPACE}/release-artifacts"
+ DOCKER_CONFIG = "${WORKSPACE}/.docker"
+ PNPM_FILTER_STRING = '-F @kie/kogito-data-index-ephemeral-image...'
+ MAVEN_ARGS = "-B -s ${WORKSPACE}/kie-settings.xml"
+ }
+
+ stages {
+ stage('Load local shared scripts') {
+ steps {
+ script {
+ pipelineVars = load '.ci/jenkins/shared-scripts/pipelineVars.groovy'
+ buildUtils = load '.ci/jenkins/shared-scripts/buildUtils.groovy'
+ githubUtils = load '.ci/jenkins/shared-scripts/githubUtils.groovy'
+ dockerUtils = load '.ci/jenkins/shared-scripts/dockerUtils.groovy'
+ releaseUtils = load '.ci/jenkins/shared-scripts/releaseUtils.groovy'
+ }
+ }
+ }
+
+ stage('Start required services for build and tests (DinD, Xvfb, Fluxbox)') {
+ steps {
+ script {
+ buildUtils.startRequiredServices()
+ }
+ }
+ }
+
+ stage('Clean workspace before build') {
+ steps {
+ cleanWs(deleteDirs: true, disableDeferredWipeout: true)
+ }
+ }
+
+ stage('Checkout kie-tools') {
+ steps {
+ dir('kie-tools') {
+ script {
+ githubUtils.checkoutRepo(
+ "http://github.com/${pipelineVars.githubRepositorySlug}.git",
+ "${params.BASE_REF}",
+ "${pipelineVars.kieToolsBotGithubCredentialsId}"
+ )
+ githubUtils.setupGitConfig()
+ }
+ }
+ }
+ }
+
+ stage('Setup PNPM') {
+ steps {
+ dir('kie-tools') {
+ script {
+ buildUtils.setupPnpm("${pipelineVars.mavenSettingsReleaseConfigFileId}")
+ }
+ }
+ }
+ }
+
+ stage('PNPM Bootstrap') {
+ steps {
+ dir('kie-tools') {
+ script {
+ buildUtils.pnpmBootstrap(env.PNPM_FILTER_STRING, env.MAVEN_ARGS)
+ }
+ }
+ }
+ }
+
+ stage('Build') {
+ steps {
+ dir('kie-tools') {
+ script {
+ env.KIE_TOOLS_BUILD__mavenDeploySkip = params.DRY_RUN ? 'true' : 'false'
+ withEnv(["KIE_TOOLS_BUILD__mavenDeploySkip=${env.KIE_TOOLS_BUILD__mavenDeploySkip}"]) {
+ buildUtils.pnpmBuild(env.PNPM_FILTER_STRING, env.MAVEN_ARGS)
+ }
+ }
+ }
+ }
+ }
+
+ stage('Setup release candidate artifacts') {
+ when {
+ expression { !params.DRY_RUN && params.RELEASE_CANDIDATE_VERSION != '' }
+ }
+ steps {
+ script {
+ env.RELEASE_IMAGE_TAR_FILE = "apache-kie-${params.RELEASE_VERSION}-incubating-kogito-base-builder-image.tar.gz"
+
+ sh """#!/bin/bash -el
+ mkdir ${env.RELEASE_ARTIFACTS_DIR}
+ docker save "${env.KOGITO_DATA_INDEX_EPHEMERAL_IMAGE__registry}/${env.KOGITO_DATA_INDEX_EPHEMERAL_IMAGE__account}/${env.KOGITO_DATA_INDEX_EPHEMERAL_IMAGE__name}:${params.RELEASE_VERSION}" | gzip > "${env.RELEASE_ARTIFACTS_DIR}/${env.RELEASE_IMAGE_TAR_FILE}"
+ """.trim()
+ }
+ }
+ }
+
+ stage('Sign artifact for Apache release') {
+ when {
+ expression { !params.DRY_RUN && params.RELEASE_CANDIDATE_VERSION != '' }
+ }
+ steps {
+ dir("${env.RELEASE_ARTIFACTS_DIR}") {
+ script {
+ releaseUtils.setupSigningKey("${pipelineVars.asfReleaseGPGKeyCredentialsId}")
+ releaseUtils.signArtifact("${env.RELEASE_IMAGE_TAR_FILE}")
+ }
+ }
+ }
+ }
+
+ stage('Publish Release Candidate artifacts') {
+ when {
+ expression { !params.DRY_RUN && params.RELEASE_CANDIDATE_VERSION != '' }
+ }
+ steps {
+ script {
+ releaseUtils.publishArtifacts(
+ "${env.RELEASE_ARTIFACTS_DIR}",
+ "${pipelineVars.asfReleaseStagingRepository}",
+ "${params.RELEASE_CANDIDATE_VERSION}",
+ "${pipelineVars.asfReleaseSVNStagingCredentialsId}"
+ )
+ }
+ }
+ }
+ }
+
+ post {
+ always {
+ cleanWs(deleteDirs: true)
+ }
+ }
+}
diff --git a/.ci/jenkins/release-jobs/Jenkinsfile.kogito-data-index-postgresql-image b/.ci/jenkins/release-jobs/Jenkinsfile.kogito-data-index-postgresql-image
new file mode 100644
index 00000000000..8338a9fd594
--- /dev/null
+++ b/.ci/jenkins/release-jobs/Jenkinsfile.kogito-data-index-postgresql-image
@@ -0,0 +1,181 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+pipeline {
+ agent {
+ docker {
+ image 'docker.io/apache/incubator-kie-tools-ci-build:10.1.999'
+ args '--shm-size=2g --privileged --group-add docker'
+ }
+ }
+
+ options {
+ timeout(time: 60, unit: 'MINUTES')
+ }
+
+ parameters {
+ booleanParam(name: 'DRY_RUN', description: 'Dry run', defaultValue: true)
+ string(name: 'RELEASE_VERSION', description: 'Release Version', defaultValue: '0.0.0')
+ string(name: 'BASE_REF', description: 'GitHub Base Ref (tag or branch)')
+ string(name: 'RELEASE_CANDIDATE_VERSION', description: 'Release Candidate Version', defaultValue: '')
+ string(name: 'PIPELINE_PATH', description: 'Path to run the pipeline')
+ }
+
+ environment {
+ KIE_TOOLS_BUILD__runLinters = 'false'
+ KIE_TOOLS_BUILD__runTests = 'false'
+ KIE_TOOLS_BUILD__runEndToEndTests = 'false'
+ KIE_TOOLS_BUILD__buildContainerImages = 'true'
+
+ KOGITO_DATA_INDEX_POSTGRESQL_IMAGE__registry = 'docker.io'
+ KOGITO_DATA_INDEX_POSTGRESQL_IMAGE__account = 'apache'
+ KOGITO_DATA_INDEX_POSTGRESQL_IMAGE__name = 'incubator-kie-kogito-data-index-postgresql'
+ KOGITO_DATA_INDEX_POSTGRESQL_IMAGE__buildTag = "${params.RELEASE_VERSION}"
+
+ RELEASE_ARTIFACTS_DIR = "${WORKSPACE}/release-artifacts"
+ DOCKER_CONFIG = "${WORKSPACE}/.docker"
+ PNPM_FILTER_STRING = '-F @kie/kogito-data-index-postgresql-image...'
+ MAVEN_ARGS = "-B -s ${WORKSPACE}/kie-settings.xml"
+ }
+
+ stages {
+ stage('Load local shared scripts') {
+ steps {
+ script {
+ pipelineVars = load '.ci/jenkins/shared-scripts/pipelineVars.groovy'
+ buildUtils = load '.ci/jenkins/shared-scripts/buildUtils.groovy'
+ githubUtils = load '.ci/jenkins/shared-scripts/githubUtils.groovy'
+ dockerUtils = load '.ci/jenkins/shared-scripts/dockerUtils.groovy'
+ releaseUtils = load '.ci/jenkins/shared-scripts/releaseUtils.groovy'
+ }
+ }
+ }
+
+ stage('Start required services for build and tests (DinD, Xvfb, Fluxbox)') {
+ steps {
+ script {
+ buildUtils.startRequiredServices()
+ }
+ }
+ }
+
+ stage('Clean workspace before build') {
+ steps {
+ cleanWs(deleteDirs: true, disableDeferredWipeout: true)
+ }
+ }
+
+ stage('Checkout kie-tools') {
+ steps {
+ dir('kie-tools') {
+ script {
+ githubUtils.checkoutRepo(
+ "http://github.com/${pipelineVars.githubRepositorySlug}.git",
+ "${params.BASE_REF}",
+ "${pipelineVars.kieToolsBotGithubCredentialsId}"
+ )
+ githubUtils.setupGitConfig()
+ }
+ }
+ }
+ }
+
+ stage('Setup PNPM') {
+ steps {
+ dir('kie-tools') {
+ script {
+ buildUtils.setupPnpm("${pipelineVars.mavenSettingsReleaseConfigFileId}")
+ }
+ }
+ }
+ }
+
+ stage('PNPM Bootstrap') {
+ steps {
+ dir('kie-tools') {
+ script {
+ buildUtils.pnpmBootstrap(env.PNPM_FILTER_STRING, env.MAVEN_ARGS)
+ }
+ }
+ }
+ }
+
+ stage('Build') {
+ steps {
+ dir('kie-tools') {
+ script {
+ env.KIE_TOOLS_BUILD__mavenDeploySkip = params.DRY_RUN ? 'true' : 'false'
+ withEnv(["KIE_TOOLS_BUILD__mavenDeploySkip=${env.KIE_TOOLS_BUILD__mavenDeploySkip}"]) {
+ buildUtils.pnpmBuild(env.PNPM_FILTER_STRING, env.MAVEN_ARGS)
+ }
+ }
+ }
+ }
+ }
+
+ stage('Setup release candidate artifacts') {
+ when {
+ expression { !params.DRY_RUN && params.RELEASE_CANDIDATE_VERSION != '' }
+ }
+ steps {
+ script {
+ env.RELEASE_IMAGE_TAR_FILE = "apache-kie-${params.RELEASE_VERSION}-incubating-kogito-base-builder-image.tar.gz"
+
+ sh """#!/bin/bash -el
+ mkdir ${env.RELEASE_ARTIFACTS_DIR}
+ docker save "${env.KOGITO_DATA_INDEX_POSTGRESQL_IMAGE__registry}/${env.KOGITO_DATA_INDEX_POSTGRESQL_IMAGE__account}/${env.KOGITO_DATA_INDEX_POSTGRESQL_IMAGE__name}:${params.RELEASE_VERSION}" | gzip > "${env.RELEASE_ARTIFACTS_DIR}/${env.RELEASE_IMAGE_TAR_FILE}"
+ """.trim()
+ }
+ }
+ }
+
+ stage('Sign artifact for Apache release') {
+ when {
+ expression { !params.DRY_RUN && params.RELEASE_CANDIDATE_VERSION != '' }
+ }
+ steps {
+ dir("${env.RELEASE_ARTIFACTS_DIR}") {
+ script {
+ releaseUtils.setupSigningKey("${pipelineVars.asfReleaseGPGKeyCredentialsId}")
+ releaseUtils.signArtifact("${env.RELEASE_IMAGE_TAR_FILE}")
+ }
+ }
+ }
+ }
+
+ stage('Publish Release Candidate artifacts') {
+ when {
+ expression { !params.DRY_RUN && params.RELEASE_CANDIDATE_VERSION != '' }
+ }
+ steps {
+ script {
+ releaseUtils.publishArtifacts(
+ "${env.RELEASE_ARTIFACTS_DIR}",
+ "${pipelineVars.asfReleaseStagingRepository}",
+ "${params.RELEASE_CANDIDATE_VERSION}",
+ "${pipelineVars.asfReleaseSVNStagingCredentialsId}"
+ )
+ }
+ }
+ }
+ }
+
+ post {
+ always {
+ cleanWs(deleteDirs: true)
+ }
+ }
+}
diff --git a/.ci/jenkins/release-jobs/Jenkinsfile.kogito-jit-runner-image b/.ci/jenkins/release-jobs/Jenkinsfile.kogito-jit-runner-image
new file mode 100644
index 00000000000..4603cb5bed9
--- /dev/null
+++ b/.ci/jenkins/release-jobs/Jenkinsfile.kogito-jit-runner-image
@@ -0,0 +1,181 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+pipeline {
+ agent {
+ docker {
+ image 'docker.io/apache/incubator-kie-tools-ci-build:10.1.999'
+ args '--shm-size=2g --privileged --group-add docker'
+ }
+ }
+
+ options {
+ timeout(time: 60, unit: 'MINUTES')
+ }
+
+ parameters {
+ booleanParam(name: 'DRY_RUN', description: 'Dry run', defaultValue: true)
+ string(name: 'RELEASE_VERSION', description: 'Release Version', defaultValue: '0.0.0')
+ string(name: 'BASE_REF', description: 'GitHub Base Ref (tag or branch)')
+ string(name: 'RELEASE_CANDIDATE_VERSION', description: 'Release Candidate Version', defaultValue: '')
+ string(name: 'PIPELINE_PATH', description: 'Path to run the pipeline')
+ }
+
+ environment {
+ KIE_TOOLS_BUILD__runLinters = 'false'
+ KIE_TOOLS_BUILD__runTests = 'false'
+ KIE_TOOLS_BUILD__runEndToEndTests = 'false'
+ KIE_TOOLS_BUILD__buildContainerImages = 'true'
+
+ KOGITO_JIT_RUNNER_IMAGE__registry = 'docker.io'
+ KOGITO_JIT_RUNNER_IMAGE__account = 'apache'
+ KOGITO_JIT_RUNNER_IMAGE__name = 'incubator-kie-kogito-jit-runner'
+ KOGITO_JIT_RUNNER_IMAGE__buildTag = "${params.RELEASE_VERSION}"
+
+ RELEASE_ARTIFACTS_DIR = "${WORKSPACE}/release-artifacts"
+ DOCKER_CONFIG = "${WORKSPACE}/.docker"
+ PNPM_FILTER_STRING = '-F @kie/kogito-jit-runner-image...'
+ MAVEN_ARGS = "-B -s ${WORKSPACE}/kie-settings.xml"
+ }
+
+ stages {
+ stage('Load local shared scripts') {
+ steps {
+ script {
+ pipelineVars = load '.ci/jenkins/shared-scripts/pipelineVars.groovy'
+ buildUtils = load '.ci/jenkins/shared-scripts/buildUtils.groovy'
+ githubUtils = load '.ci/jenkins/shared-scripts/githubUtils.groovy'
+ dockerUtils = load '.ci/jenkins/shared-scripts/dockerUtils.groovy'
+ releaseUtils = load '.ci/jenkins/shared-scripts/releaseUtils.groovy'
+ }
+ }
+ }
+
+ stage('Start required services for build and tests (DinD, Xvfb, Fluxbox)') {
+ steps {
+ script {
+ buildUtils.startRequiredServices()
+ }
+ }
+ }
+
+ stage('Clean workspace before build') {
+ steps {
+ cleanWs(deleteDirs: true, disableDeferredWipeout: true)
+ }
+ }
+
+ stage('Checkout kie-tools') {
+ steps {
+ dir('kie-tools') {
+ script {
+ githubUtils.checkoutRepo(
+ "http://github.com/${pipelineVars.githubRepositorySlug}.git",
+ "${params.BASE_REF}",
+ "${pipelineVars.kieToolsBotGithubCredentialsId}"
+ )
+ githubUtils.setupGitConfig()
+ }
+ }
+ }
+ }
+
+ stage('Setup PNPM') {
+ steps {
+ dir('kie-tools') {
+ script {
+ buildUtils.setupPnpm("${pipelineVars.mavenSettingsReleaseConfigFileId}")
+ }
+ }
+ }
+ }
+
+ stage('PNPM Bootstrap') {
+ steps {
+ dir('kie-tools') {
+ script {
+ buildUtils.pnpmBootstrap(env.PNPM_FILTER_STRING, env.MAVEN_ARGS)
+ }
+ }
+ }
+ }
+
+ stage('Build') {
+ steps {
+ dir('kie-tools') {
+ script {
+ env.KIE_TOOLS_BUILD__mavenDeploySkip = params.DRY_RUN ? 'true' : 'false'
+ withEnv(["KIE_TOOLS_BUILD__mavenDeploySkip=${env.KIE_TOOLS_BUILD__mavenDeploySkip}"]) {
+ buildUtils.pnpmBuild(env.PNPM_FILTER_STRING, env.MAVEN_ARGS)
+ }
+ }
+ }
+ }
+ }
+
+ stage('Setup release candidate artifacts') {
+ when {
+ expression { !params.DRY_RUN && params.RELEASE_CANDIDATE_VERSION != '' }
+ }
+ steps {
+ script {
+ env.RELEASE_IMAGE_TAR_FILE = "apache-kie-${params.RELEASE_VERSION}-incubating-kogito-base-builder-image.tar.gz"
+
+ sh """#!/bin/bash -el
+ mkdir ${env.RELEASE_ARTIFACTS_DIR}
+ docker save "${env.KOGITO_JIT_RUNNER_IMAGE__registry}/${env.KOGITO_JIT_RUNNER_IMAGE__account}/${env.KOGITO_JIT_RUNNER_IMAGE__name}:${params.RELEASE_VERSION}" | gzip > "${env.RELEASE_ARTIFACTS_DIR}/${env.RELEASE_IMAGE_TAR_FILE}"
+ """.trim()
+ }
+ }
+ }
+
+ stage('Sign artifact for Apache release') {
+ when {
+ expression { !params.DRY_RUN && params.RELEASE_CANDIDATE_VERSION != '' }
+ }
+ steps {
+ dir("${env.RELEASE_ARTIFACTS_DIR}") {
+ script {
+ releaseUtils.setupSigningKey("${pipelineVars.asfReleaseGPGKeyCredentialsId}")
+ releaseUtils.signArtifact("${env.RELEASE_IMAGE_TAR_FILE}")
+ }
+ }
+ }
+ }
+
+ stage('Publish Release Candidate artifacts') {
+ when {
+ expression { !params.DRY_RUN && params.RELEASE_CANDIDATE_VERSION != '' }
+ }
+ steps {
+ script {
+ releaseUtils.publishArtifacts(
+ "${env.RELEASE_ARTIFACTS_DIR}",
+ "${pipelineVars.asfReleaseStagingRepository}",
+ "${params.RELEASE_CANDIDATE_VERSION}",
+ "${pipelineVars.asfReleaseSVNStagingCredentialsId}"
+ )
+ }
+ }
+ }
+ }
+
+ post {
+ always {
+ cleanWs(deleteDirs: true)
+ }
+ }
+}
diff --git a/.ci/jenkins/release-jobs/Jenkinsfile.kogito-jobs-service-allinone-image b/.ci/jenkins/release-jobs/Jenkinsfile.kogito-jobs-service-allinone-image
new file mode 100644
index 00000000000..fd3c9bc8f3c
--- /dev/null
+++ b/.ci/jenkins/release-jobs/Jenkinsfile.kogito-jobs-service-allinone-image
@@ -0,0 +1,181 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+pipeline {
+ agent {
+ docker {
+ image 'docker.io/apache/incubator-kie-tools-ci-build:10.1.999'
+ args '--shm-size=2g --privileged --group-add docker'
+ }
+ }
+
+ options {
+ timeout(time: 60, unit: 'MINUTES')
+ }
+
+ parameters {
+ booleanParam(name: 'DRY_RUN', description: 'Dry run', defaultValue: true)
+ string(name: 'RELEASE_VERSION', description: 'Release Version', defaultValue: '0.0.0')
+ string(name: 'BASE_REF', description: 'GitHub Base Ref (tag or branch)')
+ string(name: 'RELEASE_CANDIDATE_VERSION', description: 'Release Candidate Version', defaultValue: '')
+ string(name: 'PIPELINE_PATH', description: 'Path to run the pipeline')
+ }
+
+ environment {
+ KIE_TOOLS_BUILD__runLinters = 'false'
+ KIE_TOOLS_BUILD__runTests = 'false'
+ KIE_TOOLS_BUILD__runEndToEndTests = 'false'
+ KIE_TOOLS_BUILD__buildContainerImages = 'true'
+
+ KOGITO_JOBS_SERVICE_ALLINONE_IMAGE__registry = 'docker.io'
+ KOGITO_JOBS_SERVICE_ALLINONE_IMAGE__account = 'apache'
+ KOGITO_JOBS_SERVICE_ALLINONE_IMAGE__name = 'incubator-kie-kogito-jobs-service-allinone'
+ KOGITO_JOBS_SERVICE_ALLINONE_IMAGE__buildTag = "${params.RELEASE_VERSION}"
+
+ RELEASE_ARTIFACTS_DIR = "${WORKSPACE}/release-artifacts"
+ DOCKER_CONFIG = "${WORKSPACE}/.docker"
+ PNPM_FILTER_STRING = '-F @kie/kogito-jobs-service-allinone-image...'
+ MAVEN_ARGS = "-B -s ${WORKSPACE}/kie-settings.xml"
+ }
+
+ stages {
+ stage('Load local shared scripts') {
+ steps {
+ script {
+ pipelineVars = load '.ci/jenkins/shared-scripts/pipelineVars.groovy'
+ buildUtils = load '.ci/jenkins/shared-scripts/buildUtils.groovy'
+ githubUtils = load '.ci/jenkins/shared-scripts/githubUtils.groovy'
+ dockerUtils = load '.ci/jenkins/shared-scripts/dockerUtils.groovy'
+ releaseUtils = load '.ci/jenkins/shared-scripts/releaseUtils.groovy'
+ }
+ }
+ }
+
+ stage('Start required services for build and tests (DinD, Xvfb, Fluxbox)') {
+ steps {
+ script {
+ buildUtils.startRequiredServices()
+ }
+ }
+ }
+
+ stage('Clean workspace before build') {
+ steps {
+ cleanWs(deleteDirs: true, disableDeferredWipeout: true)
+ }
+ }
+
+ stage('Checkout kie-tools') {
+ steps {
+ dir('kie-tools') {
+ script {
+ githubUtils.checkoutRepo(
+ "http://github.com/${pipelineVars.githubRepositorySlug}.git",
+ "${params.BASE_REF}",
+ "${pipelineVars.kieToolsBotGithubCredentialsId}"
+ )
+ githubUtils.setupGitConfig()
+ }
+ }
+ }
+ }
+
+ stage('Setup PNPM') {
+ steps {
+ dir('kie-tools') {
+ script {
+ buildUtils.setupPnpm("${pipelineVars.mavenSettingsReleaseConfigFileId}")
+ }
+ }
+ }
+ }
+
+ stage('PNPM Bootstrap') {
+ steps {
+ dir('kie-tools') {
+ script {
+ buildUtils.pnpmBootstrap(env.PNPM_FILTER_STRING, env.MAVEN_ARGS)
+ }
+ }
+ }
+ }
+
+ stage('Build') {
+ steps {
+ dir('kie-tools') {
+ script {
+ env.KIE_TOOLS_BUILD__mavenDeploySkip = params.DRY_RUN ? 'true' : 'false'
+ withEnv(["KIE_TOOLS_BUILD__mavenDeploySkip=${env.KIE_TOOLS_BUILD__mavenDeploySkip}"]) {
+ buildUtils.pnpmBuild(env.PNPM_FILTER_STRING, env.MAVEN_ARGS)
+ }
+ }
+ }
+ }
+ }
+
+ stage('Setup release candidate artifacts') {
+ when {
+ expression { !params.DRY_RUN && params.RELEASE_CANDIDATE_VERSION != '' }
+ }
+ steps {
+ script {
+ env.RELEASE_IMAGE_TAR_FILE = "apache-kie-${params.RELEASE_VERSION}-incubating-kogito-base-builder-image.tar.gz"
+
+ sh """#!/bin/bash -el
+ mkdir ${env.RELEASE_ARTIFACTS_DIR}
+ docker save "${env.KOGITO_JOBS_SERVICE_ALLINONE_IMAGE__registry}/${env.KOGITO_JOBS_SERVICE_ALLINONE_IMAGE__account}/${env.KOGITO_JOBS_SERVICE_ALLINONE_IMAGE__name}:${params.RELEASE_VERSION}" | gzip > "${env.RELEASE_ARTIFACTS_DIR}/${env.RELEASE_IMAGE_TAR_FILE}"
+ """.trim()
+ }
+ }
+ }
+
+ stage('Sign artifact for Apache release') {
+ when {
+ expression { !params.DRY_RUN && params.RELEASE_CANDIDATE_VERSION != '' }
+ }
+ steps {
+ dir("${env.RELEASE_ARTIFACTS_DIR}") {
+ script {
+ releaseUtils.setupSigningKey("${pipelineVars.asfReleaseGPGKeyCredentialsId}")
+ releaseUtils.signArtifact("${env.RELEASE_IMAGE_TAR_FILE}")
+ }
+ }
+ }
+ }
+
+ stage('Publish Release Candidate artifacts') {
+ when {
+ expression { !params.DRY_RUN && params.RELEASE_CANDIDATE_VERSION != '' }
+ }
+ steps {
+ script {
+ releaseUtils.publishArtifacts(
+ "${env.RELEASE_ARTIFACTS_DIR}",
+ "${pipelineVars.asfReleaseStagingRepository}",
+ "${params.RELEASE_CANDIDATE_VERSION}",
+ "${pipelineVars.asfReleaseSVNStagingCredentialsId}"
+ )
+ }
+ }
+ }
+ }
+
+ post {
+ always {
+ cleanWs(deleteDirs: true)
+ }
+ }
+}
diff --git a/.ci/jenkins/release-jobs/Jenkinsfile.kogito-jobs-service-ephemeral-image b/.ci/jenkins/release-jobs/Jenkinsfile.kogito-jobs-service-ephemeral-image
new file mode 100644
index 00000000000..afbed5cc182
--- /dev/null
+++ b/.ci/jenkins/release-jobs/Jenkinsfile.kogito-jobs-service-ephemeral-image
@@ -0,0 +1,181 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+pipeline {
+ agent {
+ docker {
+ image 'docker.io/apache/incubator-kie-tools-ci-build:10.1.999'
+ args '--shm-size=2g --privileged --group-add docker'
+ }
+ }
+
+ options {
+ timeout(time: 60, unit: 'MINUTES')
+ }
+
+ parameters {
+ booleanParam(name: 'DRY_RUN', description: 'Dry run', defaultValue: true)
+ string(name: 'RELEASE_VERSION', description: 'Release Version', defaultValue: '0.0.0')
+ string(name: 'BASE_REF', description: 'GitHub Base Ref (tag or branch)')
+ string(name: 'RELEASE_CANDIDATE_VERSION', description: 'Release Candidate Version', defaultValue: '')
+ string(name: 'PIPELINE_PATH', description: 'Path to run the pipeline')
+ }
+
+ environment {
+ KIE_TOOLS_BUILD__runLinters = 'false'
+ KIE_TOOLS_BUILD__runTests = 'false'
+ KIE_TOOLS_BUILD__runEndToEndTests = 'false'
+ KIE_TOOLS_BUILD__buildContainerImages = 'true'
+
+ KOGITO_JOBS_SERVICE_EPHEMERAL_IMAGE__registry = 'docker.io'
+ KOGITO_JOBS_SERVICE_EPHEMERAL_IMAGE__account = 'apache'
+ KOGITO_JOBS_SERVICE_EPHEMERAL_IMAGE__name = 'incubator-kie-kogito-jobs-service-ephemeral'
+ KOGITO_JOBS_SERVICE_EPHEMERAL_IMAGE__buildTag = "${params.RELEASE_VERSION}"
+
+ RELEASE_ARTIFACTS_DIR = "${WORKSPACE}/release-artifacts"
+ DOCKER_CONFIG = "${WORKSPACE}/.docker"
+ PNPM_FILTER_STRING = '-F @kie/kogito-jobs-service-ephemeral-image...'
+ MAVEN_ARGS = "-B -s ${WORKSPACE}/kie-settings.xml"
+ }
+
+ stages {
+ stage('Load local shared scripts') {
+ steps {
+ script {
+ pipelineVars = load '.ci/jenkins/shared-scripts/pipelineVars.groovy'
+ buildUtils = load '.ci/jenkins/shared-scripts/buildUtils.groovy'
+ githubUtils = load '.ci/jenkins/shared-scripts/githubUtils.groovy'
+ dockerUtils = load '.ci/jenkins/shared-scripts/dockerUtils.groovy'
+ releaseUtils = load '.ci/jenkins/shared-scripts/releaseUtils.groovy'
+ }
+ }
+ }
+
+ stage('Start required services for build and tests (DinD, Xvfb, Fluxbox)') {
+ steps {
+ script {
+ buildUtils.startRequiredServices()
+ }
+ }
+ }
+
+ stage('Clean workspace before build') {
+ steps {
+ cleanWs(deleteDirs: true, disableDeferredWipeout: true)
+ }
+ }
+
+ stage('Checkout kie-tools') {
+ steps {
+ dir('kie-tools') {
+ script {
+ githubUtils.checkoutRepo(
+ "http://github.com/${pipelineVars.githubRepositorySlug}.git",
+ "${params.BASE_REF}",
+ "${pipelineVars.kieToolsBotGithubCredentialsId}"
+ )
+ githubUtils.setupGitConfig()
+ }
+ }
+ }
+ }
+
+ stage('Setup PNPM') {
+ steps {
+ dir('kie-tools') {
+ script {
+ buildUtils.setupPnpm("${pipelineVars.mavenSettingsReleaseConfigFileId}")
+ }
+ }
+ }
+ }
+
+ stage('PNPM Bootstrap') {
+ steps {
+ dir('kie-tools') {
+ script {
+ buildUtils.pnpmBootstrap(env.PNPM_FILTER_STRING, env.MAVEN_ARGS)
+ }
+ }
+ }
+ }
+
+ stage('Build') {
+ steps {
+ dir('kie-tools') {
+ script {
+ env.KIE_TOOLS_BUILD__mavenDeploySkip = params.DRY_RUN ? 'true' : 'false'
+ withEnv(["KIE_TOOLS_BUILD__mavenDeploySkip=${env.KIE_TOOLS_BUILD__mavenDeploySkip}"]) {
+ buildUtils.pnpmBuild(env.PNPM_FILTER_STRING, env.MAVEN_ARGS)
+ }
+ }
+ }
+ }
+ }
+
+ stage('Setup release candidate artifacts') {
+ when {
+ expression { !params.DRY_RUN && params.RELEASE_CANDIDATE_VERSION != '' }
+ }
+ steps {
+ script {
+ env.RELEASE_IMAGE_TAR_FILE = "apache-kie-${params.RELEASE_VERSION}-incubating-kogito-base-builder-image.tar.gz"
+
+ sh """#!/bin/bash -el
+ mkdir ${env.RELEASE_ARTIFACTS_DIR}
+ docker save "${env.KOGITO_JOBS_SERVICE_EPHEMERAL_IMAGE__registry}/${env.KOGITO_JOBS_SERVICE_EPHEMERAL_IMAGE__account}/${env.KOGITO_JOBS_SERVICE_EPHEMERAL_IMAGE__name}:${params.RELEASE_VERSION}" | gzip > "${env.RELEASE_ARTIFACTS_DIR}/${env.RELEASE_IMAGE_TAR_FILE}"
+ """.trim()
+ }
+ }
+ }
+
+ stage('Sign artifact for Apache release') {
+ when {
+ expression { !params.DRY_RUN && params.RELEASE_CANDIDATE_VERSION != '' }
+ }
+ steps {
+ dir("${env.RELEASE_ARTIFACTS_DIR}") {
+ script {
+ releaseUtils.setupSigningKey("${pipelineVars.asfReleaseGPGKeyCredentialsId}")
+ releaseUtils.signArtifact("${env.RELEASE_IMAGE_TAR_FILE}")
+ }
+ }
+ }
+ }
+
+ stage('Publish Release Candidate artifacts') {
+ when {
+ expression { !params.DRY_RUN && params.RELEASE_CANDIDATE_VERSION != '' }
+ }
+ steps {
+ script {
+ releaseUtils.publishArtifacts(
+ "${env.RELEASE_ARTIFACTS_DIR}",
+ "${pipelineVars.asfReleaseStagingRepository}",
+ "${params.RELEASE_CANDIDATE_VERSION}",
+ "${pipelineVars.asfReleaseSVNStagingCredentialsId}"
+ )
+ }
+ }
+ }
+ }
+
+ post {
+ always {
+ cleanWs(deleteDirs: true)
+ }
+ }
+}
diff --git a/.ci/jenkins/release-jobs/Jenkinsfile.kogito-jobs-service-postgresql-image b/.ci/jenkins/release-jobs/Jenkinsfile.kogito-jobs-service-postgresql-image
new file mode 100644
index 00000000000..57f794fa7d8
--- /dev/null
+++ b/.ci/jenkins/release-jobs/Jenkinsfile.kogito-jobs-service-postgresql-image
@@ -0,0 +1,181 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+pipeline {
+ agent {
+ docker {
+ image 'docker.io/apache/incubator-kie-tools-ci-build:10.1.999'
+ args '--shm-size=2g --privileged --group-add docker'
+ }
+ }
+
+ options {
+ timeout(time: 60, unit: 'MINUTES')
+ }
+
+ parameters {
+ booleanParam(name: 'DRY_RUN', description: 'Dry run', defaultValue: true)
+ string(name: 'RELEASE_VERSION', description: 'Release Version', defaultValue: '0.0.0')
+ string(name: 'BASE_REF', description: 'GitHub Base Ref (tag or branch)')
+ string(name: 'RELEASE_CANDIDATE_VERSION', description: 'Release Candidate Version', defaultValue: '')
+ string(name: 'PIPELINE_PATH', description: 'Path to run the pipeline')
+ }
+
+ environment {
+ KIE_TOOLS_BUILD__runLinters = 'false'
+ KIE_TOOLS_BUILD__runTests = 'false'
+ KIE_TOOLS_BUILD__runEndToEndTests = 'false'
+ KIE_TOOLS_BUILD__buildContainerImages = 'true'
+
+ KOGITO_JOBS_SERVICE_POSTGRESQL_IMAGE__registry = 'docker.io'
+ KOGITO_JOBS_SERVICE_POSTGRESQL_IMAGE__account = 'apache'
+ KOGITO_JOBS_SERVICE_POSTGRESQL_IMAGE__name = 'incubator-kie-kogito-jobs-service-postgresql'
+ KOGITO_JOBS_SERVICE_POSTGRESQL_IMAGE__buildTag = "${params.RELEASE_VERSION}"
+
+ RELEASE_ARTIFACTS_DIR = "${WORKSPACE}/release-artifacts"
+ DOCKER_CONFIG = "${WORKSPACE}/.docker"
+ PNPM_FILTER_STRING = '-F @kie/kogito-jobs-service-postgresql-image...'
+ MAVEN_ARGS = "-B -s ${WORKSPACE}/kie-settings.xml"
+ }
+
+ stages {
+ stage('Load local shared scripts') {
+ steps {
+ script {
+ pipelineVars = load '.ci/jenkins/shared-scripts/pipelineVars.groovy'
+ buildUtils = load '.ci/jenkins/shared-scripts/buildUtils.groovy'
+ githubUtils = load '.ci/jenkins/shared-scripts/githubUtils.groovy'
+ dockerUtils = load '.ci/jenkins/shared-scripts/dockerUtils.groovy'
+ releaseUtils = load '.ci/jenkins/shared-scripts/releaseUtils.groovy'
+ }
+ }
+ }
+
+ stage('Start required services for build and tests (DinD, Xvfb, Fluxbox)') {
+ steps {
+ script {
+ buildUtils.startRequiredServices()
+ }
+ }
+ }
+
+ stage('Clean workspace before build') {
+ steps {
+ cleanWs(deleteDirs: true, disableDeferredWipeout: true)
+ }
+ }
+
+ stage('Checkout kie-tools') {
+ steps {
+ dir('kie-tools') {
+ script {
+ githubUtils.checkoutRepo(
+ "http://github.com/${pipelineVars.githubRepositorySlug}.git",
+ "${params.BASE_REF}",
+ "${pipelineVars.kieToolsBotGithubCredentialsId}"
+ )
+ githubUtils.setupGitConfig()
+ }
+ }
+ }
+ }
+
+ stage('Setup PNPM') {
+ steps {
+ dir('kie-tools') {
+ script {
+ buildUtils.setupPnpm("${pipelineVars.mavenSettingsReleaseConfigFileId}")
+ }
+ }
+ }
+ }
+
+ stage('PNPM Bootstrap') {
+ steps {
+ dir('kie-tools') {
+ script {
+ buildUtils.pnpmBootstrap(env.PNPM_FILTER_STRING, env.MAVEN_ARGS)
+ }
+ }
+ }
+ }
+
+ stage('Build') {
+ steps {
+ dir('kie-tools') {
+ script {
+ env.KIE_TOOLS_BUILD__mavenDeploySkip = params.DRY_RUN ? 'true' : 'false'
+ withEnv(["KIE_TOOLS_BUILD__mavenDeploySkip=${env.KIE_TOOLS_BUILD__mavenDeploySkip}"]) {
+ buildUtils.pnpmBuild(env.PNPM_FILTER_STRING, env.MAVEN_ARGS)
+ }
+ }
+ }
+ }
+ }
+
+ stage('Setup release candidate artifacts') {
+ when {
+ expression { !params.DRY_RUN && params.RELEASE_CANDIDATE_VERSION != '' }
+ }
+ steps {
+ script {
+ env.RELEASE_IMAGE_TAR_FILE = "apache-kie-${params.RELEASE_VERSION}-incubating-kogito-base-builder-image.tar.gz"
+
+ sh """#!/bin/bash -el
+ mkdir ${env.RELEASE_ARTIFACTS_DIR}
+ docker save "${env.KOGITO_JOBS_SERVICE_POSTGRESQL_IMAGE__registry}/${env.KOGITO_JOBS_SERVICE_POSTGRESQL_IMAGE__account}/${env.KOGITO_JOBS_SERVICE_POSTGRESQL_IMAGE__name}:${params.RELEASE_VERSION}" | gzip > "${env.RELEASE_ARTIFACTS_DIR}/${env.RELEASE_IMAGE_TAR_FILE}"
+ """.trim()
+ }
+ }
+ }
+
+ stage('Sign artifact for Apache release') {
+ when {
+ expression { !params.DRY_RUN && params.RELEASE_CANDIDATE_VERSION != '' }
+ }
+ steps {
+ dir("${env.RELEASE_ARTIFACTS_DIR}") {
+ script {
+ releaseUtils.setupSigningKey("${pipelineVars.asfReleaseGPGKeyCredentialsId}")
+ releaseUtils.signArtifact("${env.RELEASE_IMAGE_TAR_FILE}")
+ }
+ }
+ }
+ }
+
+ stage('Publish Release Candidate artifacts') {
+ when {
+ expression { !params.DRY_RUN && params.RELEASE_CANDIDATE_VERSION != '' }
+ }
+ steps {
+ script {
+ releaseUtils.publishArtifacts(
+ "${env.RELEASE_ARTIFACTS_DIR}",
+ "${pipelineVars.asfReleaseStagingRepository}",
+ "${params.RELEASE_CANDIDATE_VERSION}",
+ "${pipelineVars.asfReleaseSVNStagingCredentialsId}"
+ )
+ }
+ }
+ }
+ }
+
+ post {
+ always {
+ cleanWs(deleteDirs: true)
+ }
+ }
+}
diff --git a/.ci/jenkins/shared-scripts/releaseUtils.groovy b/.ci/jenkins/shared-scripts/releaseUtils.groovy
index 4051e13888a..768829b5bd0 100644
--- a/.ci/jenkins/shared-scripts/releaseUtils.groovy
+++ b/.ci/jenkins/shared-scripts/releaseUtils.groovy
@@ -68,13 +68,13 @@ def downloadReleaseArtifacts(String releaseRepository, String artifactsDir, Stri
*/
def getUpstreamImagesArtifactsList(String artifactsDir, String releaseVersion) {
def components = [
- "kogito-base-builder",
- "kogito-data-index-ephemeral",
- "kogito-data-index-postgresql",
- "kogito-jit-runner",
- "kogito-jobs-service-allinone",
- "kogito-jobs-service-ephemeral",
- "kogito-jobs-service-postgresql"
+ "kogito-base-builder", // jenkinsfile.kogito-base-builder-image
+ "kogito-data-index-ephemeral", // jenkinsfile.kogito-data-index-ephemeral-image
+ "kogito-data-index-postgresql", // jenkinsfile.kogito-data-index-postgresql-image
+ "kogito-jit-runner", // jenkinsfile.kogito-jit-runner-image
+ "kogito-jobs-service-allinone", // jenkinsfile.kogito-jobs-service-allinone-image
+ "kogito-jobs-service-ephemeral", // jenkinsfile.kogito-jobs-service-ephemeral-image
+ "kogito-jobs-service-postgresql" // jenkinsfile.kogito-jobs-service-postgresql-image
]
// clean -rc suffix if present
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org
For additional commands, e-mail: commits-help@kie.apache.org