This is an automated email from the ASF dual-hosted git repository.
tiagobento pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-tools.git
The following commit(s) were added to refs/heads/main by this push:
new 558ae562b47 kie-issues#1036: Adapt kie-tools Jenkins jobs to build and
publish packages/kogito-swf-{devmode,builder} (#2262)
558ae562b47 is described below
commit 558ae562b476591a1257711e365bc385c3d01f4c
Author: Rodrigo Antunes <[email protected]>
AuthorDate: Thu Apr 25 12:36:42 2024 -0300
kie-issues#1036: Adapt kie-tools Jenkins jobs to build and publish
packages/kogito-swf-{devmode,builder} (#2262)
---
.ci/jenkins/Jenkinsfile.daily-dev-publish | 36 ++
.ci/jenkins/Jenkinsfile.release-build | 54 ++-
.ci/jenkins/Jenkinsfile.release-dry-run | 2 +-
.ci/jenkins/Jenkinsfile.release-publish | 2 +-
.ci/jenkins/Jenkinsfile.staging-build | 456 ++++++++++++---------
.../release-jobs/Jenkinsfile.kogito-swf-builder | 143 +++++++
.../release-jobs/Jenkinsfile.kogito-swf-devmode | 143 +++++++
.ci/jenkins/shared-scripts/pipelineVars.groovy | 1 +
.ci/kie-tools-ci-build.Dockerfile | 61 ++-
9 files changed, 677 insertions(+), 221 deletions(-)
diff --git a/.ci/jenkins/Jenkinsfile.daily-dev-publish
b/.ci/jenkins/Jenkinsfile.daily-dev-publish
index 1499566eb2f..32336bcd44d 100644
--- a/.ci/jenkins/Jenkinsfile.daily-dev-publish
+++ b/.ci/jenkins/Jenkinsfile.daily-dev-publish
@@ -122,6 +122,16 @@ pipeline {
KOGITO_MANAGEMENT_CONSOLE__name = 'kogito-management-console'
KOGITO_MANAGEMENT_CONSOLE__buildTags = 'daily-dev'
+ KOGITO_SWF_BUILDER_IMAGE__registry = 'quay.io'
+ KOGITO_SWF_BUILDER_IMAGE__account = 'kiegroup'
+ KOGITO_SWF_BUILDER_IMAGE__name = 'kogito-swf-builder-nightly'
+ KOGITO_SWF_BUILDER_IMAGE__buildTag = 'latest'
+
+ KOGITO_SWF_DEVMODE_IMAGE__registry = 'quay.io'
+ KOGITO_SWF_DEVMODE_IMAGE__account = 'kiegroup'
+ KOGITO_SWF_DEVMODE_IMAGE__name = 'kogito-swf-devmode-nightly'
+ KOGITO_SWF_DEVMODE_IMAGE__buildTag = 'latest'
+
BUILD_DATE = sh(script: "echo `date +'%Y-%m-%d %T'`", returnStdout:
true).trim()
DOCKER_CONFIG = "${WORKSPACE}/.docker"
@@ -215,6 +225,32 @@ pipeline {
}
}
+ stage('Push kogito-swf-builder to quay.io') {
+ steps {
+ script {
+ dockerUtils.pushImageToRegistry(
+
"${env.KOGITO_SWF_BUILDER_IMAGE__registry}/${env.KOGITO_SWF_BUILDER_IMAGE__account}",
+ "${env.KOGITO_SWF_BUILDER_IMAGE__name}",
+ "${env.KOGITO_SWF_BUILDER_IMAGE__buildTag}",
+ "${pipelineVars.quayKiegroupPushCredentialsId}"
+ )
+ }
+ }
+ }
+
+ stage('Push kogito-swf-devmode to quay.io') {
+ steps {
+ script {
+ dockerUtils.pushImageToRegistry(
+
"${env.KOGITO_SWF_DEVMODE_IMAGE__registry}/${env.KOGITO_SWF_DEVMODE_IMAGE__account}",
+ "${env.KOGITO_SWF_DEVMODE_IMAGE__name}",
+ "${env.KOGITO_SWF_DEVMODE_IMAGE__buildTag}",
+ "${pipelineVars.quayKiegroupPushCredentialsId}"
+ )
+ }
+ }
+ }
+
stage('Push dev-deployment-base-image to quay.io') {
steps {
script {
diff --git a/.ci/jenkins/Jenkinsfile.release-build
b/.ci/jenkins/Jenkinsfile.release-build
index a799a5fa168..3d694b0c0ed 100644
--- a/.ci/jenkins/Jenkinsfile.release-build
+++ b/.ci/jenkins/Jenkinsfile.release-build
@@ -35,7 +35,7 @@ pipeline {
string(description: 'Base Ref', name: 'BASE_REF')
string(description: 'Tag', name: 'TAG', defaultValue: '0.0.0')
string(description: 'Upload asset url', name: 'UPLOAD_ASSET_URL',
defaultValue: '')
- string(description: 'Runners', name: 'RUNNERS', defaultValue:
'{"dev_deployment_base_image":"false","dev_deployment_kogito_quakus_blank_app_image":"false","dev_deployment_dmn_form_webapp_image":"false","dev_deployment_upload_service":"false","kie_sandbox_image":"false","kie_sandbox_extended_services_image":"false","cors_proxy_image":"false","online_editor":"false",
"chrome_extensions":"false","vscode_extensions_dev":"false","vscode_extensions_prod":"false","npm_packages":"false",
[...]
+ string(description: 'Runners', name: 'RUNNERS', defaultValue:
'{"dev_deployment_base_image":"false","dev_deployment_kogito_quakus_blank_app_image":"false","dev_deployment_dmn_form_webapp_image":"false","dev_deployment_upload_service":"false","kie_sandbox_image":"false","kie_sandbox_extended_services_image":"false","cors_proxy_image":"false","online_editor":"false",
"chrome_extensions":"false","vscode_extensions_dev":"false","vscode_extensions_prod":"false","npm_packages":"false",
[...]
}
environment {
@@ -54,6 +54,8 @@ pipeline {
DASHBUILDER_VIEWER_IMAGE_JOB_RESULT = 'SKIPPED'
KOGITO_TASK_CONSOLE_JOB_RESULT = 'SKIPPED'
KOGITO_MANAGEMENT_CONSOLE_JOB_RESULT = 'SKIPPED'
+ KOGITO_SWF_BUILDER_JOB_RESULT = 'SKIPPED'
+ KOGITO_SWF_DEVMODE_JOB_RESULT = 'SKIPPED'
}
stages {
@@ -91,8 +93,10 @@ pipeline {
env.DASHBUILDER_VIEWER_IMAGE =
runners.dashbuilder_viewer_image
env.KN_PLUGIN_WORKFLOW = runners.kn_plugin_workflow
env.KIE_SANDBOX_HELM_CHART = runners.kie_sandbox_helm_chart
- env.KOGITO_TASK_CONSOLE = runners.KOGITO_TASK_CONSOLE
- env.KOGITO_MANAGEMENT_CONSOLE =
runners.KOGITO_MANAGEMENT_CONSOLE
+ env.KOGITO_TASK_CONSOLE = runners.kogito_task_console
+ env.KOGITO_MANAGEMENT_CONSOLE =
runners.kogito_management_console
+ env.KOGITO_SWF_BUILDER = runners.kogito_swf_builder
+ env.KOGITO_SWF_DEVMODE = runners.kogito_swf_devmode
}
}
}
@@ -121,8 +125,10 @@ pipeline {
echo "dashbuilder_viewer_image:
${env.DASHBUILDER_VIEWER_IMAGE}"
echo "kn_plugin_workflow: ${env.KN_PLUGIN_WORKFLOW}"
echo "kie_sandbox_helm_chart: ${env.KIE_SANDBOX_HELM_CHART}"
- echo "KOGITO_TASK_CONSOLE": ${env.KOGITO_TASK_CONSOLE}"
- echo "KOGITO_MANAGEMENT_CONSOLE":
${env.KOGITO_MANAGEMENT_CONSOLE}"
+ echo "kogito_task_console": ${env.KOGITO_TASK_CONSOLE}"
+ echo "kogito_management_console":
${env.KOGITO_MANAGEMENT_CONSOLE}"
+ echo "kogito_swf_builder": ${env.KOGITO_SWF_BUILDER}"
+ echo "kogito_swf_devmode": ${env.KOGITO_SWF_DEVMODE}"
""".trim()
}
}
@@ -578,6 +584,44 @@ pipeline {
}
}
}
+
+ stage('Kogito SWF Builder Image') {
+ when {
+ expression { env.KOGITO_SWF_BUILDER == 'true' }
+ }
+ steps {
+ script {
+ env.KOGITO_SWF_BUILDER_JOB_RESULT = build(
+ wait: true,
+ job:
'KIE/kie-tools/kie-tools-release-jobs/kogito-swf-builder',
+ parameters: [
+ booleanParam(name: 'DRY_RUN', value:
"${params.DRY_RUN}"),
+ string(name: 'BASE_REF', value:
"${params.BASE_REF}"),
+ string(name: 'TAG', value: "${params.TAG}")
+ ]
+ ).result
+ }
+ }
+ }
+
+ stage('Kogito SWF Devmode Image') {
+ when {
+ expression { env.KOGITO_SWF_DEVMODE == 'true' }
+ }
+ steps {
+ script {
+ env.KOGITO_SWF_DEVMODE_JOB_RESULT = build(
+ wait: true,
+ job:
'KIE/kie-tools/kie-tools-release-jobs/kogito-swf-devmode',
+ parameters: [
+ booleanParam(name: 'DRY_RUN', value:
"${params.DRY_RUN}"),
+ string(name: 'BASE_REF', value:
"${params.BASE_REF}"),
+ string(name: 'TAG', value: "${params.TAG}")
+ ]
+ ).result
+ }
+ }
+ }
}
post {
diff --git a/.ci/jenkins/Jenkinsfile.release-dry-run
b/.ci/jenkins/Jenkinsfile.release-dry-run
index 4515c5dab39..bad2dc0e926 100644
--- a/.ci/jenkins/Jenkinsfile.release-dry-run
+++ b/.ci/jenkins/Jenkinsfile.release-dry-run
@@ -35,7 +35,7 @@ pipeline {
build job: 'KIE/kie-tools/kie-tools-release-build',
parameters: [
booleanParam(name: 'DRY_RUN', value: true),
string(name: 'BASE_REF', value: 'main'),
- string(name: 'RUNNERS', value:
'{"dev_deployment_base_image":"true","dev_deployment_kogito_quakus_blank_app_image":"true","dev_deployment_dmn_form_webapp_image":"true","dev_deployment_upload_service":"true","kie_sandbox_image":"true","kie_sandbox_extended_services_image":"true","cors_proxy_image":"true","online_editor":"true","chrome_extensions":"true","vscode_extensions_dev":"true","vscode_extensions_prod":"true","npm_packages":"true","standalone_editors_cdn":"true",
[...]
+ string(name: 'RUNNERS', value:
'{"dev_deployment_base_image":"true","dev_deployment_kogito_quakus_blank_app_image":"true","dev_deployment_dmn_form_webapp_image":"true","dev_deployment_upload_service":"true","kie_sandbox_image":"true","kie_sandbox_extended_services_image":"true","cors_proxy_image":"true","online_editor":"true","chrome_extensions":"true","vscode_extensions_dev":"true","vscode_extensions_prod":"true","npm_packages":"true","standalone_editors_cdn":"true",
[...]
]
}
}
diff --git a/.ci/jenkins/Jenkinsfile.release-publish
b/.ci/jenkins/Jenkinsfile.release-publish
index 5f95fd9c7aa..d3d3c75e5fd 100644
--- a/.ci/jenkins/Jenkinsfile.release-publish
+++ b/.ci/jenkins/Jenkinsfile.release-publish
@@ -31,7 +31,7 @@ pipeline {
parameters {
string(description: 'Tag', name: 'TAG', defaultValue: '0.0.0')
- string(description: 'Runners', name: 'RUNNERS', defaultValue:
'{"dev_deployment_base_image":"true","dev_deployment_kogito_quakus_blank_app_image":"true","dev_deployment_dmn_form_webapp_image":"true","dev_deployment_upload_service":"true","kie_sandbox_image":"true","kie_sandbox_extended_services_image":"true","cors_proxy_image":"true","online_editor":"true","chrome_extensions":"true","vscode_extensions_dev":"true","vscode_extensions_prod":"true","npm_packages":"true","standalone_e
[...]
+ string(description: 'Runners', name: 'RUNNERS', defaultValue:
'{"dev_deployment_base_image":"true","dev_deployment_kogito_quakus_blank_app_image":"true","dev_deployment_dmn_form_webapp_image":"true","dev_deployment_upload_service":"true","kie_sandbox_image":"true","kie_sandbox_extended_services_image":"true","cors_proxy_image":"true","online_editor":"true","chrome_extensions":"true","vscode_extensions_dev":"true","vscode_extensions_prod":"true","npm_packages":"true","standalone_e
[...]
}
stages {
diff --git a/.ci/jenkins/Jenkinsfile.staging-build
b/.ci/jenkins/Jenkinsfile.staging-build
index 1bc8adcb862..c1254b6d484 100644
--- a/.ci/jenkins/Jenkinsfile.staging-build
+++ b/.ci/jenkins/Jenkinsfile.staging-build
@@ -117,6 +117,16 @@ pipeline {
KOGITO_MANAGEMENT_CONSOLE__name = 'kogito-management-console'
KOGITO_MANAGEMENT_CONSOLE__buildTags = "${params.TAG}-prerelease"
+ KOGITO_SWF_BUILDER_IMAGE__registry = 'quay.io'
+ KOGITO_SWF_BUILDER_IMAGE__account = 'kiegroup'
+ KOGITO_SWF_BUILDER_IMAGE__name = 'kogito-swf-builder'
+ KOGITO_SWF_BUILDER_IMAGE__buildTag = "${params.TAG}-prerelease"
+
+ KOGITO_SWF_DEVMODE_IMAGE__registry = 'quay.io'
+ KOGITO_SWF_DEVMODE_IMAGE__account = 'kiegroup'
+ KOGITO_SWF_DEVMODE_IMAGE__name = 'kogito-swf-devmode'
+ KOGITO_SWF_DEVMODE_IMAGE__buildTag = "${params.TAG}-prerelease"
+
DOCKER_CONFIG = "${WORKSPACE}/.docker"
}
@@ -254,13 +264,7 @@ pipeline {
}
steps {
script {
- githubUtils.uploadReleaseAsset(
- "${params.UPLOAD_ASSET_URL}",
- 'kie-tools/packages/online-editor/dist.zip',
- "STAGING__online_editor_${params.TAG}.zip",
- 'application/zip',
- "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
- )
+ uploadOnlineEditor()
}
}
}
@@ -271,13 +275,7 @@ pipeline {
}
steps {
script {
- githubUtils.uploadReleaseAsset(
- "${params.UPLOAD_ASSET_URL}",
-
'kie-tools/packages/serverless-logic-web-tools/dist.zip',
-
"STAGING__serverless_logic_web_tools_${params.TAG}.zip",
- 'application/zip',
- "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
- )
+ uploadServerlessLogicWebTools()
}
}
}
@@ -288,13 +286,7 @@ pipeline {
}
steps {
script {
- githubUtils.uploadReleaseAsset(
- "${params.UPLOAD_ASSET_URL}",
-
"kie-tools/packages/kie-editors-dev-vscode-extension/dist/kie_editors_dev_vscode_extension_${params.TAG}.vsix",
- "STAGING__vscode_extension_dev_${params.TAG}.vsix",
- 'application/zip',
- "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
- )
+ uploadVSCodeExtension()
}
}
}
@@ -305,13 +297,7 @@ pipeline {
}
steps {
script {
- githubUtils.uploadReleaseAsset(
- "${params.UPLOAD_ASSET_URL}",
-
"kie-tools/packages/bpmn-vscode-extension/dist/bpmn_vscode_extension_${params.TAG}.vsix",
- "STAGING__bpmn_vscode_extension_${params.TAG}.vsix",
- 'application/zip',
- "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
- )
+ uploadVSCodeExtensionBPMNEditor()
}
}
}
@@ -322,13 +308,7 @@ pipeline {
}
steps {
script {
- githubUtils.uploadReleaseAsset(
- "${params.UPLOAD_ASSET_URL}",
-
"kie-tools/packages/dmn-vscode-extension/dist/dmn_vscode_extension_${params.TAG}.vsix",
- "STAGING__dmn_vscode_extension_${params.TAG}.vsix",
- 'application/zip',
- "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
- )
+ uploadVSCodeExtensionDMNEditor()
}
}
}
@@ -339,13 +319,7 @@ pipeline {
}
steps {
script {
- githubUtils.uploadReleaseAsset(
- "${params.UPLOAD_ASSET_URL}",
-
"kie-tools/packages/pmml-vscode-extension/dist/pmml_vscode_extension_${params.TAG}.vsix",
- "STAGING__pmml_vscode_extension_${params.TAG}.vsix",
- 'application/zip',
- "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
- )
+ uploadVSCodeExtensionPMMLEditor()
}
}
}
@@ -356,13 +330,7 @@ pipeline {
}
steps {
script {
- githubUtils.uploadReleaseAsset(
- "${params.UPLOAD_ASSET_URL}",
-
"kie-tools/packages/serverless-workflow-vscode-extension/dist/serverless_workflow_vscode_extension_${params.TAG}.vsix",
-
"STAGING__serverless_workflow_vscode_extension_${params.TAG}.vsix",
- 'application/zip',
- "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
- )
+ uploadVSCodeExtensionServerlessWorkflowEditor()
}
}
}
@@ -373,13 +341,7 @@ pipeline {
}
steps {
script {
- githubUtils.uploadReleaseAsset(
- "${params.UPLOAD_ASSET_URL}",
-
"kie-tools/packages/vscode-extension-dashbuilder-editor/dist/vscode_extension_dashbuilder_editor_${params.TAG}.vsix",
-
"STAGING__vscode_extension_dashbuilder_editor_${params.TAG}.vsix",
- 'application/zip',
- "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
- )
+ uploadVSCodeExtensionDashbuilderEditor()
}
}
}
@@ -390,13 +352,7 @@ pipeline {
}
steps {
script {
- githubUtils.uploadReleaseAsset(
- "${params.UPLOAD_ASSET_URL}",
-
"kie-tools/packages/vscode-extension-kogito-bundle/dist/vscode_extension_kogito_bundle_${params.TAG}.vsix",
-
"STAGING__vscode_extension_kogito_bundle_${params.TAG}.vsix",
- 'application/zip',
- "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
- )
+ uploadVSCodeExtensionKogitoBundle()
}
}
}
@@ -407,13 +363,7 @@ pipeline {
}
steps {
script {
- githubUtils.uploadReleaseAsset(
- "${params.UPLOAD_ASSET_URL}",
-
"kie-tools/packages/vscode-extension-kie-ba-bundle/dist/vscode_extension_kie_ba_bundle_${params.TAG}.vsix",
-
"STAGING__vscode_extension_kie_ba_bundle_${params.TAG}.vsix",
- 'application/zip',
- "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
- )
+ uploadVSCodeExtensionKieBusinessAutomationBundle()
}
}
}
@@ -424,13 +374,7 @@ pipeline {
}
steps {
script {
- githubUtils.uploadReleaseAsset(
- "${params.UPLOAD_ASSET_URL}",
-
"kie-tools/packages/chrome-extension-pack-kogito-kie-editors/dist/chrome_extension_kogito_kie_editors_${params.TAG}.zip",
-
"STAGING__chrome_extension_kogito_kie_editors_${params.TAG}.zip",
- 'application/zip',
- "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
- )
+ uploadChromeExtensionForKieEditors()
}
}
}
@@ -441,13 +385,7 @@ pipeline {
}
steps {
script {
- githubUtils.uploadReleaseAsset(
- "${params.UPLOAD_ASSET_URL}",
-
"kie-tools/packages/chrome-extension-serverless-workflow-editor/dist/chrome_extension_serverless_workflow_editor_${params.TAG}.zip",
-
"STAGING__chrome_extension_serverless_workflow_editor_${params.TAG}.zip",
- 'application/zip',
- "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
- )
+ uploadChromeExtensionForServerlessWorkflowEditor()
}
}
}
@@ -458,13 +396,7 @@ pipeline {
}
steps {
script {
- githubUtils.uploadReleaseAsset(
- "${params.UPLOAD_ASSET_URL}",
-
'kie-tools/packages/extended-services/dist/linux/kie_sandbox_extended_services.tar.gz',
-
"STAGING__kie_sandbox_extended_services_linux_${params.TAG}.tar.gz",
- 'application/zip',
- "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
- )
+ uploadExtendedServicesForLinux()
}
}
}
@@ -475,13 +407,7 @@ pipeline {
}
steps {
script {
- githubUtils.uploadReleaseAsset(
- "${params.UPLOAD_ASSET_URL}",
-
'kie-tools/packages/kn-plugin-workflow/dist/kn-workflow-linux-amd64',
- "STAGING__kn-workflow-linux-amd64-${params.TAG}",
- 'application/octet-stream',
- "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
- )
+ uploadKnativeCliWorkflowPluginForLinux()
}
}
}
@@ -492,13 +418,7 @@ pipeline {
}
steps {
script {
- githubUtils.uploadReleaseAsset(
- "${params.UPLOAD_ASSET_URL}",
-
'kie-tools/packages/kn-plugin-workflow/dist/kn-workflow-darwin-amd64',
- "STAGING__kn-workflow-darwin-amd64-${params.TAG}",
- 'application/octet-stream',
- "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
- )
+ uploadKnativeCliWorkflowPluginForMacOs()
}
}
}
@@ -509,13 +429,7 @@ pipeline {
}
steps {
script {
- githubUtils.uploadReleaseAsset(
- "${params.UPLOAD_ASSET_URL}",
-
'kie-tools/packages/kn-plugin-workflow/dist/kn-workflow-darwin-arm64',
- "STAGING__kn-workflow-darwin-arm64-${params.TAG}",
- 'application/octet-stream',
- "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
- )
+ uploadKnativeCliWorkflowPluginForMacOsM1()
}
}
}
@@ -526,13 +440,7 @@ pipeline {
}
steps {
script {
- githubUtils.uploadReleaseAsset(
- "${params.UPLOAD_ASSET_URL}",
-
'kie-tools/packages/kn-plugin-workflow/dist/kn-workflow-windows-amd64.exe',
- "STAGING__kn-workflow-windows-amd64-${params.TAG}.exe",
- 'application/octet-stream',
- "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
- )
+ uploadKnativeCliWorkflowPluginForWindows()
}
}
}
@@ -615,11 +523,11 @@ pipeline {
}
}
- stage('Build (serverless-logic-web-tools-swf-dev-mode-image)') {
+ stage('STAGING: Build
(serverless-logic-web-tools-swf-dev-mode-image)') {
steps {
dir('kie-tools') {
script {
- buildServerlessLogicWebToolsSwfDevModeImage()
+
buildImage('serverless-logic-web-tools-swf-dev-mode-image')
}
}
}
@@ -640,8 +548,8 @@ pipeline {
steps {
dir('kie-tools') {
script {
- buildDevDeploymentBaseImage()
- buildDevDeploymentKogitoQuarkusBlankAppImage()
+ buildImage('dev-deployment-base-image')
+
buildImage('dev-deployment-kogito-quarkus-blank-app-image')
}
}
}
@@ -659,11 +567,11 @@ pipeline {
}
}
- stage('Build (dev-deployment-dmn-form-webapp-image)') {
+ stage('STAGING: Build (dev-deployment-dmn-form-webapp-image)') {
steps {
dir('kie-tools') {
script {
- buildDevDeploymentDmnFormWebappImage()
+ buildImage('dev-deployment-dmn-form-webapp-image')
}
}
}
@@ -680,11 +588,11 @@ pipeline {
}
}
- stage('Build (serverless-logic-web-tools-base-builder-image)') {
+ stage('STAGING: Build
(serverless-logic-web-tools-base-builder-image)') {
steps {
dir('kie-tools') {
script {
- buildServerlessLogicWebToolsBaseBuilderImage()
+
buildImage('serverless-logic-web-tools-base-builder-image')
}
}
}
@@ -701,11 +609,11 @@ pipeline {
}
}
- stage('Build (dashbuilder-viewer-image)') {
+ stage('STAGING: Build (dashbuilder-viewer-image)') {
steps {
dir('kie-tools') {
script {
- buildDashbuilderViewerImage()
+ buildImage('dashbuilder-viewer-image')
}
}
}
@@ -735,11 +643,11 @@ pipeline {
}
}
- stage('Build (kogito-task-console)') {
+ stage('STAGING: Build (kogito-task-console)') {
steps {
dir('kie-tools') {
script {
- buildKogitoTaskConsole()
+ buildImage('kogito-task-console')
}
}
}
@@ -756,11 +664,11 @@ pipeline {
}
}
- stage('Build (kogito-management-console)') {
+ stage('STAGING: Build (kogito-management-console)') {
steps {
dir('kie-tools') {
script {
- buildKogitoManagementConsole()
+ buildImage('kogito-management-console')
}
}
}
@@ -776,6 +684,48 @@ pipeline {
}
}
}
+
+ stage('STAGING: Build (kogito-swf-builder)') {
+ steps {
+ dir('kie-tools') {
+ script {
+ buildImage('kogito-swf-builder')
+ }
+ }
+ }
+ }
+
+ stage('STAGING: Push kogito-swf-builder to quay.io') {
+ when {
+ expression { !params.DRY_RUN }
+ }
+ steps {
+ script {
+ pushKogitoSwfBuilderToQuay()
+ }
+ }
+ }
+
+ stage('STAGING: Build (kogito-swf-devmode)') {
+ steps {
+ dir('kie-tools') {
+ script {
+ buildImage('kogito-swf-devmode')
+ }
+ }
+ }
+ }
+
+ stage('STAGING: Push kogito-swf-devmode to quay.io') {
+ when {
+ expression { !params.DRY_RUN }
+ }
+ steps {
+ script {
+ pushKogitoSwfDevModeToQuay()
+ }
+ }
+ }
}
post {
@@ -825,62 +775,164 @@ def buildPartial() {
""".trim()
}
-def buildServerlessLogicWebToolsSwfDevModeImage() {
- sh '''#!/bin/bash -el
- export KIE_TOOLS_BUILD__runTests=true
- export KIE_TOOLS_BUILD__buildContainerImages=true
- docker system prune -af
- echo "Build @kie-tools/serverless-logic-web-tools-swf-dev-mode-image"
- pnpm -F @kie-tools/serverless-logic-web-tools-swf-dev-mode-image...
--workspace-concurrency=1 build:prod
- '''.trim()
+def uploadKnativeCliWorkflowPluginForWindows() {
+ githubUtils.uploadReleaseAsset(
+ "${params.UPLOAD_ASSET_URL}",
+
'kie-tools/packages/kn-plugin-workflow/dist/kn-workflow-windows-amd64.exe',
+ "STAGING__kn-workflow-windows-amd64-${params.TAG}.exe",
+ 'application/octet-stream',
+ "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
+ )
}
-def buildDevDeploymentBaseImage() {
- sh '''#!/bin/bash -el
- export KIE_TOOLS_BUILD__runTests=true
- export KIE_TOOLS_BUILD__buildContainerImages=true
- docker system prune -af
- echo "Build @kie-tools/dev-deployment-base-image"
- pnpm -F @kie-tools/dev-deployment-base-image... --workspace-concurrency=1
build:prod
- '''.trim()
+def uploadKnativeCliWorkflowPluginForMacOsM1() {
+ githubUtils.uploadReleaseAsset(
+ "${params.UPLOAD_ASSET_URL}",
+ 'kie-tools/packages/kn-plugin-workflow/dist/kn-workflow-darwin-arm64',
+ "STAGING__kn-workflow-darwin-arm64-${params.TAG}",
+ 'application/octet-stream',
+ "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
+ )
}
-def buildDevDeploymentDmnFormWebappImage() {
- sh '''#!/bin/bash -el
- export KIE_TOOLS_BUILD__runTests=true
- export KIE_TOOLS_BUILD__buildContainerImages=true
- echo "Build @kie-tools/dev-deployment-dmn-form-webapp-image"
- pnpm -F @kie-tools/dev-deployment-dmn-form-webapp-image...
--workspace-concurrency=1 build:prod
- '''.trim()
+def uploadKnativeCliWorkflowPluginForMacOs() {
+ githubUtils.uploadReleaseAsset(
+ "${params.UPLOAD_ASSET_URL}",
+ 'kie-tools/packages/kn-plugin-workflow/dist/kn-workflow-darwin-amd64',
+ "STAGING__kn-workflow-darwin-amd64-${params.TAG}",
+ 'application/octet-stream',
+ "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
+ )
}
-def buildDevDeploymentKogitoQuarkusBlankAppImage() {
- sh '''#!/bin/bash -el
- export KIE_TOOLS_BUILD__runTests=true
- export KIE_TOOLS_BUILD__buildContainerImages=true
- echo "Build @kie-tools/dev-deployment-kogito-quarkus-blank-app-image"
- pnpm -F @kie-tools/dev-deployment-kogito-quarkus-blank-app-image...
--workspace-concurrency=1 build:prod
- '''.trim()
+def uploadKnativeCliWorkflowPluginForLinux() {
+ githubUtils.uploadReleaseAsset(
+ "${params.UPLOAD_ASSET_URL}",
+ 'kie-tools/packages/kn-plugin-workflow/dist/kn-workflow-linux-amd64',
+ "STAGING__kn-workflow-linux-amd64-${params.TAG}",
+ 'application/octet-stream',
+ "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
+ )
}
-def buildServerlessLogicWebToolsBaseBuilderImage() {
- sh '''#!/bin/bash -el
- export KIE_TOOLS_BUILD__runTests=true
- export KIE_TOOLS_BUILD__buildContainerImages=true
- docker system prune -af
- echo "Build @kie-tools/serverless-logic-web-tools-base-builder-image"
- pnpm -F @kie-tools/serverless-logic-web-tools-base-builder-image...
--workspace-concurrency=1 build:prod
- '''.trim()
+def uploadExtendedServicesForLinux() {
+ githubUtils.uploadReleaseAsset(
+ "${params.UPLOAD_ASSET_URL}",
+
'kie-tools/packages/extended-services/dist/linux/kie_sandbox_extended_services.tar.gz',
+ "STAGING__kie_sandbox_extended_services_linux_${params.TAG}.tar.gz",
+ 'application/zip',
+ "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
+ )
}
-def buildDashbuilderViewerImage() {
- sh '''#!/bin/bash -el
- export KIE_TOOLS_BUILD__runTests=true
- export KIE_TOOLS_BUILD__buildContainerImages=true
- docker system prune -af
- echo "Build @kie-tools/dashbuilder-viewer-image"
- pnpm -F @kie-tools/dashbuilder-viewer-image... --workspace-concurrency=1
build:prod
- '''.trim()
+def uploadChromeExtensionForServerlessWorkflowEditor() {
+ githubUtils.uploadReleaseAsset(
+ "${params.UPLOAD_ASSET_URL}",
+
"kie-tools/packages/chrome-extension-serverless-workflow-editor/dist/chrome_extension_serverless_workflow_editor_${params.TAG}.zip",
+
"STAGING__chrome_extension_serverless_workflow_editor_${params.TAG}.zip",
+ 'application/zip',
+ "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
+ )
+}
+
+def uploadChromeExtensionForKieEditors() {
+ githubUtils.uploadReleaseAsset(
+ "${params.UPLOAD_ASSET_URL}",
+
"kie-tools/packages/chrome-extension-pack-kogito-kie-editors/dist/chrome_extension_kogito_kie_editors_${params.TAG}.zip",
+ "STAGING__chrome_extension_kogito_kie_editors_${params.TAG}.zip",
+ 'application/zip',
+ "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
+ )
+}
+
+def uploadVSCodeExtensionKieBusinessAutomationBundle() {
+ githubUtils.uploadReleaseAsset(
+ "${params.UPLOAD_ASSET_URL}",
+
"kie-tools/packages/vscode-extension-kie-ba-bundle/dist/vscode_extension_kie_ba_bundle_${params.TAG}.vsix",
+ "STAGING__vscode_extension_kie_ba_bundle_${params.TAG}.vsix",
+ 'application/zip',
+ "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
+ )
+}
+
+def uploadVSCodeExtensionKogitoBundle() {
+ githubUtils.uploadReleaseAsset(
+ "${params.UPLOAD_ASSET_URL}",
+
"kie-tools/packages/vscode-extension-kogito-bundle/dist/vscode_extension_kogito_bundle_${params.TAG}.vsix",
+ "STAGING__vscode_extension_kogito_bundle_${params.TAG}.vsix",
+ 'application/zip',
+ "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
+ )
+}
+
+def uploadVSCodeExtensionDashbuilderEditor() {
+ githubUtils.uploadReleaseAsset(
+ "${params.UPLOAD_ASSET_URL}",
+
"kie-tools/packages/vscode-extension-dashbuilder-editor/dist/vscode_extension_dashbuilder_editor_${params.TAG}.vsix",
+ "STAGING__vscode_extension_dashbuilder_editor_${params.TAG}.vsix",
+ 'application/zip',
+ "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
+ )
+}
+
+def uploadVSCodeExtensionServerlessWorkflowEditor() {
+ githubUtils.uploadReleaseAsset(
+ "${params.UPLOAD_ASSET_URL}",
+
"kie-tools/packages/serverless-workflow-vscode-extension/dist/serverless_workflow_vscode_extension_${params.TAG}.vsix",
+ "STAGING__serverless_workflow_vscode_extension_${params.TAG}.vsix",
+ 'application/zip',
+ "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
+ )
+}
+
+def uploadVSCodeExtensionPMMLEditor() {
+ githubUtils.uploadReleaseAsset(
+ "${params.UPLOAD_ASSET_URL}",
+
"kie-tools/packages/pmml-vscode-extension/dist/pmml_vscode_extension_${params.TAG}.vsix",
+ "STAGING__pmml_vscode_extension_${params.TAG}.vsix",
+ 'application/zip',
+ "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
+ )
+}
+
+def uploadVSCodeExtensionDMNEditor() {
+ githubUtils.uploadReleaseAsset(
+ "${params.UPLOAD_ASSET_URL}",
+
"kie-tools/packages/dmn-vscode-extension/dist/dmn_vscode_extension_${params.TAG}.vsix",
+ "STAGING__dmn_vscode_extension_${params.TAG}.vsix",
+ 'application/zip',
+ "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
+ )
+}
+
+def uploadVSCodeExtension() {
+ githubUtils.uploadReleaseAsset(
+ "${params.UPLOAD_ASSET_URL}",
+
"kie-tools/packages/kie-editors-dev-vscode-extension/dist/kie_editors_dev_vscode_extension_${params.TAG}.vsix",
+ "STAGING__vscode_extension_dev_${params.TAG}.vsix",
+ 'application/zip',
+ "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
+ )
+}
+
+def uploadServerlessLogicWebTools() {
+ githubUtils.uploadReleaseAsset(
+ "${params.UPLOAD_ASSET_URL}",
+ 'kie-tools/packages/serverless-logic-web-tools/dist.zip',
+ "STAGING__serverless_logic_web_tools_${params.TAG}.zip",
+ 'application/zip',
+ "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
+ )
+}
+
+def uploadOnlineEditor() {
+ githubUtils.uploadReleaseAsset(
+ "${params.UPLOAD_ASSET_URL}",
+ 'kie-tools/packages/online-editor/dist.zip',
+ "STAGING__online_editor_${params.TAG}.zip",
+ 'application/zip',
+ "${pipelineVars.kieToolsBotGithubTokenCredentialsId}"
+ )
}
def pushKieSandboxHelmChartToQuay() {
@@ -1064,15 +1116,6 @@ def pushServerlessLogicWebToolsBaseBuilderImageToQuay() {
)
}
-def buildKogitoTaskConsole() {
- sh '''#!/bin/bash -el
- export KIE_TOOLS_BUILD__runTests=true
- export KIE_TOOLS_BUILD__buildContainerImages=true
- echo "Build @kie-tools/kogito-task-console"
- pnpm -F @kie-tools/kogito-task-console... --workspace-concurrency=1
build:prod
- '''.trim()
-}
-
def pushKogitoTaskConsoleToQuay() {
dockerUtils.pushImageToRegistry(
"${env.KOGITO_TASK_CONSOLE__registry}/${env.KOGITO_TASK_CONSOLE__account}",
@@ -1082,15 +1125,6 @@ def pushKogitoTaskConsoleToQuay() {
)
}
-def buildKogitoManagementConsole() {
- sh '''#!/bin/bash -el
- export KIE_TOOLS_BUILD__runTests=true
- export KIE_TOOLS_BUILD__buildContainerImages=true
- echo "Build @kie-tools/kogito-management-console"
- pnpm -F @kie-tools/kogito-management-console... --workspace-concurrency=1
build:prod
- '''.trim()
-}
-
def pushKogitoManagementConsoleToQuay() {
dockerUtils.pushImageToRegistry(
"${env.KOGITO_MANAGEMENT_CONSOLE__registry}/${env.KOGITO_MANAGEMENT_CONSOLE__account}",
@@ -1100,6 +1134,34 @@ def pushKogitoManagementConsoleToQuay() {
)
}
+def pushKogitoSwfBuilderToQuay() {
+ dockerUtils.pushImageToRegistry(
+
"${env.KOGITO_SWF_BUILDER_IMAGE__registry}/${env.KOGITO_SWF_BUILDER_IMAGE__account}",
+ "${env.KOGITO_SWF_BUILDER_IMAGE__name}",
+ "${env.KOGITO_SWF_BUILDER_IMAGE__buildTag}",
+ "${pipelineVars.quayKiegroupPushCredentialsId}"
+ )
+}
+
+def pushKogitoSwfDevModeToQuay() {
+ dockerUtils.pushImageToRegistry(
+
"${env.KOGITO_SWF_DEVMODE_IMAGE__registry}/${env.KOGITO_SWF_DEVMODE_IMAGE__account}",
+ "${env.KOGITO_SWF_DEVMODE_IMAGE__name}",
+ "${env.KOGITO_SWF_DEVMODE_IMAGE__buildTag}",
+ "${pipelineVars.quayKiegroupPushCredentialsId}"
+ )
+}
+
+def buildImage(String packageName) {
+ sh """#!/bin/bash -el
+ export KIE_TOOLS_BUILD__runTests=true
+ export KIE_TOOLS_BUILD__buildContainerImages=true
+ docker system prune -af
+ echo "Build @kie-tools/${packageName}"
+ pnpm -F @kie-tools/${packageName}... --workspace-concurrency=1 build:prod
+ """.trim()
+}
+
def loadLocalSharedScripts() {
pipelineVars = load '.ci/jenkins/shared-scripts/pipelineVars.groovy'
buildUtils = load '.ci/jenkins/shared-scripts/buildUtils.groovy'
diff --git a/.ci/jenkins/release-jobs/Jenkinsfile.kogito-swf-builder
b/.ci/jenkins/release-jobs/Jenkinsfile.kogito-swf-builder
new file mode 100644
index 00000000000..d18b2eda3d5
--- /dev/null
+++ b/.ci/jenkins/release-jobs/Jenkinsfile.kogito-swf-builder
@@ -0,0 +1,143 @@
+/*
+ * 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 'quay.io/kie-tools/kie-tools-ci-build:latest'
+ args '--shm-size=2g --privileged --group-add docker'
+ }
+ }
+
+ options {
+ timeout(time: 180, unit: 'MINUTES')
+ }
+
+ parameters {
+ booleanParam(description: 'Dry run', name: 'DRY_RUN', defaultValue:
true)
+ string(description: 'Tag', name: 'TAG', defaultValue: '0.0.0')
+ string(description: 'Base Ref', name: 'BASE_REF')
+ }
+
+ environment {
+ KIE_TOOLS_BUILD__runLinters = 'false'
+ KIE_TOOLS_BUILD__runTests = 'false'
+ KIE_TOOLS_BUILD__runEndToEndTests = 'false'
+ KIE_TOOLS_BUILD__buildContainerImages = 'true'
+
+ KOGITO_SWF_BUILDER_IMAGE__registry = 'quay.io'
+ KOGITO_SWF_BUILDER_IMAGE__account = 'kiegroup'
+ KOGITO_SWF_BUILDER_IMAGE__name = 'kogito-swf-builder'
+ KOGITO_SWF_BUILDER_IMAGE__buildTag = "latest ${params.TAG}"
+
+ DOCKER_CONFIG = "${WORKSPACE}/.docker"
+
+ PNPM_FILTER_STRING = '-F @kie-tools/kogito-swf-builder...'
+ }
+
+ 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'
+ }
+ }
+ }
+
+ 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}"
+ )
+ }
+ }
+ }
+ }
+
+ stage('Setup PNPM') {
+ steps {
+ dir('kie-tools') {
+ script {
+ buildUtils.setupPnpm()
+ }
+ }
+ }
+ }
+
+ stage('PNPM Bootstrap') {
+ steps {
+ dir('kie-tools') {
+ script {
+ buildUtils.pnpmBootstrap("${env.PNPM_FILTER_STRING}")
+ }
+ }
+ }
+ }
+
+ stage('Build') {
+ steps {
+ dir('kie-tools') {
+ script {
+ buildUtils.pnpmBuild("${env.PNPM_FILTER_STRING}")
+ }
+ }
+ }
+ }
+
+ stage('Push kogito-swf-builder to quay.io') {
+ when {
+ expression { !params.DRY_RUN }
+ }
+ steps {
+ script {
+ dockerUtils.pushImageToRegistry(
+
"${env.KOGITO_SWF_BUILDER_IMAGE__registry}/${env.KOGITO_SWF_BUILDER_IMAGE__account}",
+ "${env.KOGITO_SWF_BUILDER_IMAGE__name}",
+ "${env.KOGITO_SWF_BUILDER_IMAGE__buildTag}",
+ "${pipelineVars.quayKiegroupPushCredentialsId}"
+ )
+ }
+ }
+ }
+ }
+
+ post {
+ always {
+ cleanWs(deleteDirs: true)
+ }
+ }
+}
diff --git a/.ci/jenkins/release-jobs/Jenkinsfile.kogito-swf-devmode
b/.ci/jenkins/release-jobs/Jenkinsfile.kogito-swf-devmode
new file mode 100644
index 00000000000..b6bbc431584
--- /dev/null
+++ b/.ci/jenkins/release-jobs/Jenkinsfile.kogito-swf-devmode
@@ -0,0 +1,143 @@
+/*
+ * 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 'quay.io/kie-tools/kie-tools-ci-build:latest'
+ args '--shm-size=2g --privileged --group-add docker'
+ }
+ }
+
+ options {
+ timeout(time: 180, unit: 'MINUTES')
+ }
+
+ parameters {
+ booleanParam(description: 'Dry run', name: 'DRY_RUN', defaultValue:
true)
+ string(description: 'Tag', name: 'TAG', defaultValue: '0.0.0')
+ string(description: 'Base Ref', name: 'BASE_REF')
+ }
+
+ environment {
+ KIE_TOOLS_BUILD__runLinters = 'false'
+ KIE_TOOLS_BUILD__runTests = 'false'
+ KIE_TOOLS_BUILD__runEndToEndTests = 'false'
+ KIE_TOOLS_BUILD__buildContainerImages = 'true'
+
+ KOGITO_SWF_DEVMODE_IMAGE__registry = 'quay.io'
+ KOGITO_SWF_DEVMODE_IMAGE__account = 'kiegroup'
+ KOGITO_SWF_DEVMODE_IMAGE__name = 'kogito-swf-devmode'
+ KOGITO_SWF_DEVMODE_IMAGE__buildTag = "latest ${params.TAG}"
+
+ DOCKER_CONFIG = "${WORKSPACE}/.docker"
+
+ PNPM_FILTER_STRING = '-F @kie-tools/kogito-swf-devmode...'
+ }
+
+ 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'
+ }
+ }
+ }
+
+ 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}"
+ )
+ }
+ }
+ }
+ }
+
+ stage('Setup PNPM') {
+ steps {
+ dir('kie-tools') {
+ script {
+ buildUtils.setupPnpm()
+ }
+ }
+ }
+ }
+
+ stage('PNPM Bootstrap') {
+ steps {
+ dir('kie-tools') {
+ script {
+ buildUtils.pnpmBootstrap("${env.PNPM_FILTER_STRING}")
+ }
+ }
+ }
+ }
+
+ stage('Build') {
+ steps {
+ dir('kie-tools') {
+ script {
+ buildUtils.pnpmBuild("${env.PNPM_FILTER_STRING}")
+ }
+ }
+ }
+ }
+
+ stage('Push kogito-swf-devmode to quay.io') {
+ when {
+ expression { !params.DRY_RUN }
+ }
+ steps {
+ script {
+ dockerUtils.pushImageToRegistry(
+
"${env.KOGITO_SWF_DEVMODE_IMAGE__registry}/${env.KOGITO_SWF_DEVMODE_IMAGE__account}",
+ "${env.KOGITO_SWF_DEVMODE_IMAGE__name}",
+ "${env.KOGITO_SWF_DEVMODE_IMAGE__buildTag}",
+ "${pipelineVars.quayKiegroupPushCredentialsId}"
+ )
+ }
+ }
+ }
+ }
+
+ post {
+ always {
+ cleanWs(deleteDirs: true)
+ }
+ }
+}
diff --git a/.ci/jenkins/shared-scripts/pipelineVars.groovy
b/.ci/jenkins/shared-scripts/pipelineVars.groovy
index bfbde6004a4..e3ed412710a 100644
--- a/.ci/jenkins/shared-scripts/pipelineVars.groovy
+++ b/.ci/jenkins/shared-scripts/pipelineVars.groovy
@@ -21,6 +21,7 @@ class PipelineVars implements Serializable {
String githubRepositorySlug = 'apache/incubator-kie-tools';
String quayPushCredentialsId = 'quay-io-kie-tools-token';
+ String quayKiegroupPushCredentialsId = 'quay_kiegroup_registry_token';
String openshiftCredentialsId = 'openshift-kie-tools-token';
String kieToolsBotGithubCredentialsId = 'kie-tools-bot-gh';
String kieToolsBotGithubTokenCredentialsId = 'kie-tools-bot-gh-token';
diff --git a/.ci/kie-tools-ci-build.Dockerfile
b/.ci/kie-tools-ci-build.Dockerfile
index dc68123d9d2..52036a7594a 100644
--- a/.ci/kie-tools-ci-build.Dockerfile
+++ b/.ci/kie-tools-ci-build.Dockerfile
@@ -1,5 +1,7 @@
FROM cruizba/ubuntu-dind:latest
+SHELL ["/bin/bash", "-c"]
+
RUN apt-get update && apt-get upgrade -y && apt-get install -y
--no-install-recommends \
sudo bash wget gpg locales uidmap apt-transport-https ca-certificates curl
software-properties-common \
&& rm -rf /var/lib/apt/lists/* \
@@ -23,7 +25,15 @@ libxi6 \
libnss3 \
libgconf-2-4 \
libpci-dev \
-openjdk-17-jdk \
+libglvnd0 \
+libbtrfs-dev \
+libgpgme-dev \
+libdevmapper-dev \
+python3 \
+python3-pip \
+python3-dev \
+python3-venv \
+python3-gssapi \
git \
jq \
vim \
@@ -60,35 +70,39 @@ RUN groupadd docker && usermod -aG docker nonrootuser
USER nonrootuser
# NVM setup
-RUN wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh
| bash && \
+RUN wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh
| bash && \
echo 'export NVM_DIR="${HOME}/.nvm"' | sudo tee /etc/profile.d/nvm.sh && \
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' | sudo tee -a
/etc/profile.d/nvm.sh && \
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"'
| sudo tee -a /etc/profile.d/nvm.sh && \
echo "source /etc/profile.d/nvm.sh" >> $HOME/.bashrc
# Node setup
-RUN bash -c 'source $HOME/.nvm/nvm.sh && \
- nvm install 18.14.0'
+RUN source $HOME/.nvm/nvm.sh && \
+ nvm install 18.14.0 && \
+ sudo update-alternatives --install /usr/local/bin/node node $(which node)
1 && \
+ sudo update-alternatives --install /usr/local/bin/npm npm $(which npm) 1
# PNPM setup
-RUN bash -c 'source $HOME/.nvm/nvm.sh && \
- npm install -g [email protected]'
+RUN source $HOME/.nvm/nvm.sh && \
+ npm install -g [email protected] && \
+ sudo update-alternatives --install /usr/local/bin/pnpm pnpm $(which pnpm) 1
# Maven setup
-RUN wget
https://archive.apache.org/dist/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz
-P /tmp && \
- sudo tar xzf /tmp/apache-maven-3.9.6-bin.tar.gz -C /opt && rm
/tmp/apache-maven-3.9.6-bin.tar.gz && \
- sudo ln -s /opt/apache-maven-3.9.6 /opt/maven && \
- echo 'export M2_HOME=/opt/maven' | sudo tee -a /etc/profile.d/maven.sh && \
- echo 'export MAVEN_HOME=${M2_HOME}' | sudo tee -a /etc/profile.d/maven.sh
&& \
- echo 'export PATH=${M2_HOME}/bin:${PATH}' | sudo tee -a
/etc/profile.d/maven.sh && \
- echo "source /etc/profile.d/maven.sh" >> $HOME/.bashrc
+RUN curl -s "https://get.sdkman.io" | bash && \
+ source "$HOME/.sdkman/bin/sdkman-init.sh" && \
+ sdk install java 17.0.10-zulu && \
+ sudo update-alternatives --install /usr/local/bin/java java $(which java)
1 && \
+ sdk install maven 3.9.6 && \
+ sudo update-alternatives --install /usr/local/bin/mvn mvn $(which mvn) 1
&& \
+ sdk flush
# Golang setup
RUN wget https://go.dev/dl/go1.21.5.linux-amd64.tar.gz -P /tmp && \
sudo tar xzf /tmp/go1.21.5.linux-amd64.tar.gz -C /opt && rm
/tmp/go1.21.5.linux-amd64.tar.gz && \
echo 'export GOPATH=${HOME}/go' | sudo tee /etc/profile.d/go.sh && \
echo 'export PATH=${PATH}:/opt/go/bin:${GOPATH}/bin' | sudo tee -a
/etc/profile.d/go.sh && \
- echo "source /etc/profile.d/go.sh" >> $HOME/.bashrc
+ echo "source /etc/profile.d/go.sh" >> $HOME/.bashrc && \
+ sudo update-alternatives --install /usr/local/bin/go go /opt/go/bin/go 1
# CodeQL setup
RUN wget
https://github.com/github/codeql-action/releases/latest/download/codeql-bundle-linux64.tar.gz
-P /tmp && \
@@ -102,13 +116,26 @@ RUN wget
https://mirror.openshift.com/pub/openshift-v4/clients/ocp/stable/opensh
sudo tar -C /usr/bin/ -xvzf /tmp/openshift-client-linux.tar.gz oc && rm
/tmp/openshift-client-linux.tar.gz
# Helm CLI setup
-RUN wget https://get.helm.sh/helm-v3.13.3-linux-amd64.tar.gz -P /tmp && \
- sudo tar -C /usr/bin/ -zxvf /tmp/helm-v3.13.3-linux-amd64.tar.gz
linux-amd64/helm --strip-components 1 && rm /tmp/helm-v3.13.3-linux-amd64.tar.gz
+RUN wget https://get.helm.sh/helm-v3.14.3-linux-amd64.tar.gz -P /tmp && \
+ sudo tar -C /usr/bin/ -zxvf /tmp/helm-v3.14.3-linux-amd64.tar.gz
linux-amd64/helm --strip-components 1 && rm /tmp/helm-v3.14.3-linux-amd64.tar.gz
+
+# Python setup
+RUN sudo update-alternatives --install /usr/local/bin/python python $(which
python3) 1 && \
+ sudo update-alternatives --install /usr/local/bin/pip pip $(which pip3) 1
+
+# s2i (source-to-image) setup
+RUN go install github.com/openshift/source-to-image/cmd/[email protected]
# Env vars
-ENV JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"
+ENV HOME="/home/nonrootuser"
+ENV JAVA_HOME="${HOME}/.sdkman/candidates/java/current/"
+ENV MAVEN_HOME="${HOME}/.sdkman/candidates/maven/current/"
+ENV NODE_HOME="${HOME}/.nvm/versions/node/v18.14.0"
ENV DISPLAY=":99"
ENV NODE_OPTIONS="--max_old_space_size=4096"
+ENV GOPATH="${HOME}/go"
+ENV GOROOT="/opt/go"
+ENV PATH="${PATH}:${GOROOT}/bin:${GOPATH}/bin"
ENTRYPOINT [""]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]