This is an automated email from the ASF dual-hosted git repository.
rantunes pushed a commit to branch main
in repository
https://gitbox.apache.org/repos/asf/incubator-kie-tools-temporary-rnd-do-not-use.git
The following commit(s) were added to refs/heads/main by this push:
new 0aec0b2d95 CI - Daily dev publish Jenkins job (#10)
0aec0b2d95 is described below
commit 0aec0b2d95d36f3d1f17da69c2b4cdcbcb3bf73b
Author: Rodrigo Antunes <[email protected]>
AuthorDate: Thu Nov 23 18:38:25 2023 -0300
CI - Daily dev publish Jenkins job (#10)
* CI - Daily dev publish Jenkins job
* Fix artifacts and build date
* Add env debug
* remove env debug
* Small code improvements
* remove unecessary code
* Start using the kie-tools-pipeline-lib utilities
* Fix identation
* Reflect library changes
* Use shared scripts
* Use shared scripts
* Update image tag
* Update Jenkinsfile name
* Add DOCKER_CONFIG env var
---
.ci/jenkins/Jenkinsfile.daily-dev-publish | 417 ++++++++++++++++++++++++++++++
1 file changed, 417 insertions(+)
diff --git a/.ci/jenkins/Jenkinsfile.daily-dev-publish
b/.ci/jenkins/Jenkinsfile.daily-dev-publish
new file mode 100644
index 0000000000..138d3daefc
--- /dev/null
+++ b/.ci/jenkins/Jenkinsfile.daily-dev-publish
@@ -0,0 +1,417 @@
+/*
+ * 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: 240, unit: 'MINUTES')
+ }
+
+ environment {
+ KIE_SANDBOX_EXTENDED_SERVICES_VERSION = '0.0.0'
+
+ KIE_TOOLS_BUILD__buildContainerImages = 'true'
+ KIE_TOOLS_BUILD__runLinters = 'false'
+ KIE_TOOLS_BUILD__runTests = 'false'
+ KIE_TOOLS_BUILD__runEndToEndTests = 'false'
+
+ DMN_DEV_DEPLOYMENT_BASE_IMAGE__registry = 'quay.io'
+ DMN_DEV_DEPLOYMENT_BASE_IMAGE__account = 'kie-tools'
+ DMN_DEV_DEPLOYMENT_BASE_IMAGE__name = 'dmn-dev-deployment-base-image'
+ DMN_DEV_DEPLOYMENT_BASE_IMAGE__buildTags = 'daily-dev'
+
+ ONLINE_EDITOR__dmnDevDeploymentBaseImageRegistry = 'quay.io'
+ ONLINE_EDITOR__dmnDevDeploymentBaseImageAccount = 'kie-tools'
+ ONLINE_EDITOR__dmnDevDeploymentBaseImageName =
'dmn-dev-deployment-base-image'
+ ONLINE_EDITOR__dmnDevDeploymentBaseImageTag = 'daily-dev'
+ ONLINE_EDITOR__corsProxyUrl =
'https://daily-dev-cors-proxy-kie-sandbox.rhba-0ad6762cc85bcef5745bb684498c2436-0000.us-south.containers.appdomain.cloud'
+
+ EXTENDED_SERVICES__kieSandboxUrl =
'https://kiegroup.github.io/kogito-online/dev'
+
+ KIE_SANDBOX__imageRegistry = 'quay.io'
+ KIE_SANDBOX__imageAccount = 'kie-tools'
+ KIE_SANDBOX__imageName = 'kie-sandbox-image'
+ KIE_SANDBOX__imageBuildTags = 'daily-dev'
+
+ KIE_SANDBOX_EXTENDED_SERVICES__imageRegistry = 'quay.io'
+ KIE_SANDBOX_EXTENDED_SERVICES__imageAccount = 'kie-tools'
+ KIE_SANDBOX_EXTENDED_SERVICES__imageName =
'kie-sandbox-extended-services-image'
+ KIE_SANDBOX_EXTENDED_SERVICES__imageBuildTags = 'daily-dev'
+
+ CORS_PROXY_IMAGE__imageRegistry = 'quay.io'
+ CORS_PROXY_IMAGE__imageAccount = 'kie-tools'
+ CORS_PROXY_IMAGE__imageName = 'cors-proxy-image'
+ CORS_PROXY_IMAGE__imageBuildTags = 'daily-dev'
+
+ OPENSHIFT_NAMESPACE = 'kie-sandbox'
+ OPENSHIFT_PART_OF = 'daily-dev-kie-sandbox-app'
+ DEPLOY_TAG = 'daily-dev'
+
+ DASHBUILDER__viewerImageRegistry = 'quay.io'
+ DASHBUILDER__viewerImageAccount = 'kie-tools'
+ DASHBUILDER__viewerImageName = 'dashbuilder-viewer-image'
+ DASHBUILDER__viewerImageBuildTags = 'daily-dev'
+
+ SERVERLESS_LOGIC_WEB_TOOLS__dashbuilderViewerImageTag = 'daily-dev'
+ SERVERLESS_LOGIC_WEB_TOOLS__swfBuilderImageRegistry = 'quay.io'
+ SERVERLESS_LOGIC_WEB_TOOLS__swfBuilderImageAccount = 'kie-tools'
+ SERVERLESS_LOGIC_WEB_TOOLS__swfBuilderImageName =
'serverless-logic-web-tools-swf-builder-image'
+ SERVERLESS_LOGIC_WEB_TOOLS__swfBuilderImageTag = 'daily-dev'
+ SERVERLESS_LOGIC_WEB_TOOLS__swfBuilderImageBuildTags = 'daily-dev'
+ SERVERLESS_LOGIC_WEB_TOOLS__baseBuilderImageRegistry = 'quay.io'
+ SERVERLESS_LOGIC_WEB_TOOLS__baseBuilderImageAccount = 'kie-tools'
+ SERVERLESS_LOGIC_WEB_TOOLS__baseBuilderImageName =
'serverless-logic-web-tools-base-builder-image'
+ SERVERLESS_LOGIC_WEB_TOOLS__baseBuilderImageTag = 'daily-dev'
+ SERVERLESS_LOGIC_WEB_TOOLS__baseBuilderImageBuildTags = 'daily-dev'
+ SERVERLESS_LOGIC_WEB_TOOLS__swfDevModeImageRegistry = 'quay.io'
+ SERVERLESS_LOGIC_WEB_TOOLS__swfDevModeImageAccount = 'kie-tools'
+ SERVERLESS_LOGIC_WEB_TOOLS__swfDevModeImageName =
'serverless-logic-web-tools-swf-dev-mode-image'
+ SERVERLESS_LOGIC_WEB_TOOLS__swfDevModeImageTag = 'daily-dev'
+ SERVERLESS_LOGIC_WEB_TOOLS__swfDevModeImageBuildTags = 'daily-dev'
+ SERVERLESS_LOGIC_WEB_TOOLS__corsProxyUrl =
'https://daily-dev-cors-proxy-kie-sandbox.rhba-0ad6762cc85bcef5745bb684498c2436-0000.us-south.containers.appdomain.cloud'
+
+ BUILD_DATE = sh(script: "echo `date +'%Y-%m-%d %T'`", returnStdout:
true).trim()
+
+ DOCKER_CONFIG = "${WORKSPACE}/.docker"
+ }
+
+ 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'
+ openShiftUtils = load
'.ci/jenkins/shared-scripts/openShiftUtils.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') {
+ checkout scm
+ }
+ }
+ }
+
+ stage('Output version') {
+ steps {
+ dir('kie-tools') {
+ script {
+ env.VERSION = sh(returnStdout: true, script:
"#!/bin/bash -el \n node -e
\"console.log(require('./package.json').version);\"").trim()
+ }
+ }
+ }
+ }
+
+ stage('Setup PNPM') {
+ steps {
+ dir('kie-tools') {
+ script {
+ buildUtils.setupPnpm()
+ }
+ }
+ }
+ }
+
+ stage('PNPM Bootstrap') {
+ steps {
+ dir('kie-tools') {
+ script {
+ buildUtils.pnpmBootstrap()
+ }
+ }
+ }
+ }
+
+ stage('Build') {
+ steps {
+ dir('kie-tools') {
+ sh """#!/bin/bash -el
+ export WEBPACK__minimize=true
+ export WEBPACK__tsLoaderTranspileOnly=false
+ export
CHROME_EXTENSION__routerTargetOrigin=https://kiegroup.github.io
+ export
CHROME_EXTENSION__routerRelativePath=kogito-online/dev/editors/
+ export
SWF_CHROME_EXTENSION__routerTargetOrigin=https://kiegroup.github.io
+ export
SWF_CHROME_EXTENSION__routerRelativePath=kogito-online/dev/editors/
+ export
ONLINE_EDITOR__extendedServicesDownloadUrlLinux=https://github.com/kiegroup/kie-tools/releases/download/${env.KIE_SANDBOX_EXTENDED_SERVICES_VERSION}/kie_sandbox_extended_services_linux_${env.KIE_SANDBOX_EXTENDED_SERVICES_VERSION}.tar.gz
+ export
ONLINE_EDITOR__extendedServicesDownloadUrlMacOs=https://github.com/kiegroup/kie-tools/releases/download/${env.KIE_SANDBOX_EXTENDED_SERVICES_VERSION}/kie_sandbox_extended_services_macos_${env.KIE_SANDBOX_EXTENDED_SERVICES_VERSION}.dmg
+ export
ONLINE_EDITOR__extendedServicesDownloadUrlWindows=https://github.com/kiegroup/kie-tools/releases/download/${env.KIE_SANDBOX_EXTENDED_SERVICES_VERSION}/kie_sandbox_extended_services_windows_${env.KIE_SANDBOX_EXTENDED_SERVICES_VERSION}.exe
+ export
ONLINE_EDITOR__extendedServicesCompatibleVersion=${env.KIE_SANDBOX_EXTENDED_SERVICES_VERSION}
+ export ONLINE_EDITOR__buildInfo="${env.VERSION}
(daily-dev) @ ${env.GIT_COMMIT} (${env.BUILD_DATE})"
+ export
SERVERLESS_LOGIC_WEB_TOOLS__buildInfo="${env.VERSION} (daily-dev) @
${env.GIT_COMMIT} (${env.BUILD_DATE})"
+ pnpm -r --workspace-concurrency=1 build:prod
+ """.trim()
+ }
+ }
+ }
+
+ stage('Push dmn-dev-deployment-base-image to quay.io') {
+ steps {
+ script {
+ dockerUtils.pushImageToRegistry(
+
"${env.DMN_DEV_DEPLOYMENT_BASE_IMAGE__registry}/${env.DMN_DEV_DEPLOYMENT_BASE_IMAGE__account}",
+ "${env.DMN_DEV_DEPLOYMENT_BASE_IMAGE__name}",
+ "${env.DMN_DEV_DEPLOYMENT_BASE_IMAGE__buildTags}",
+ "${pipelineVars.quayPushCredentialsId}"
+ )
+ }
+ }
+ }
+
+ stage('Push kie-sandbox-extended-services-image to quay.io') {
+ steps {
+ script {
+ dockerUtils.pushImageToRegistry(
+
"${env.KIE_SANDBOX_EXTENDED_SERVICES__imageRegistry}/${env.KIE_SANDBOX_EXTENDED_SERVICES__imageAccount}",
+ "${env.KIE_SANDBOX_EXTENDED_SERVICES__imageName}",
+ "${env.KIE_SANDBOX_EXTENDED_SERVICES__imageBuildTags}",
+ "${pipelineVars.quayPushCredentialsId}"
+ )
+ }
+ }
+ }
+
+ stage('Deploy kie-sandbox-extended-services-image to OpenShift') {
+ steps {
+ script {
+ appName = 'daily-dev-kie-sandbox-extended-services'
+ openShiftUtils.createOrUpdateApp(
+ "${env.OPENSHIFT_NAMESPACE}",
+ "${appName}",
+ "${env.DEPLOY_TAG}",
+
"${env.KIE_SANDBOX_EXTENDED_SERVICES__imageRegistry}/${env.KIE_SANDBOX_EXTENDED_SERVICES__imageAccount}/${env.KIE_SANDBOX_EXTENDED_SERVICES__imageName}:${env.DEPLOY_TAG}",
+ "${env.OPENSHIFT_PART_OF}",
+ 'golang',
+ "${pipelineVars.openshiftCredentialsId}"
+ )
+ env.KIE_SANDBOX_EXTENDED_SERVICES_URL =
openShiftUtils.getAppRoute("${env.OPENSHIFT_NAMESPACE}", "${appName}",
"${pipelineVars.openshiftCredentialsId}")
+ }
+ }
+ }
+
+ stage('Push cors-proxy-image to quay.io') {
+ steps {
+ script {
+ dockerUtils.pushImageToRegistry(
+
"${env.CORS_PROXY_IMAGE__imageRegistry}/${env.CORS_PROXY_IMAGE__imageAccount}",
+ "${env.CORS_PROXY_IMAGE__imageName}",
+ "${env.CORS_PROXY_IMAGE__imageBuildTags}",
+ "${pipelineVars.quayPushCredentialsId}"
+ )
+ }
+ }
+ }
+
+ stage('Deploy cors-proxy-image to OpenShift') {
+ steps {
+ script {
+ appName = 'daily-dev-cors-proxy'
+ openShiftUtils.createOrUpdateApp(
+ "${env.OPENSHIFT_NAMESPACE}",
+ "${appName}",
+ "${env.DEPLOY_TAG}",
+
"${env.CORS_PROXY_IMAGE__imageRegistry}/${env.CORS_PROXY_IMAGE__imageAccount}/${env.CORS_PROXY_IMAGE__imageName}:${env.DEPLOY_TAG}",
+ "${env.OPENSHIFT_PART_OF}",
+ 'nodejs',
+ "${pipelineVars.openshiftCredentialsId}"
+ )
+ env.KIE_SANDBOX_CORS_PROXY_URL =
openShiftUtils.getAppRoute("${env.OPENSHIFT_NAMESPACE}", "${appName}",
"${pipelineVars.openshiftCredentialsId}")
+ }
+ }
+ }
+
+ stage('Push kie-sandbox-image to quay.io') {
+ steps {
+ script {
+ dockerUtils.pushImageToRegistry(
+
"${env.KIE_SANDBOX__imageRegistry}/${env.KIE_SANDBOX__imageAccount}",
+ "${env.KIE_SANDBOX__imageName}",
+ "${env.KIE_SANDBOX__imageBuildTags}",
+ "${pipelineVars.quayPushCredentialsId}"
+ )
+ }
+ }
+ }
+
+ stage('Prepare environment variables for OpenShift deployment') {
+ steps {
+ sh """#!/bin/bash -el
+ echo
"KIE_SANDBOX_EXTENDED_SERVICES_URL=${env.KIE_SANDBOX_EXTENDED_SERVICES_URL}" >>
deployment.env
+ echo
"KIE_SANDBOX_CORS_PROXY_URL=${env.KIE_SANDBOX_CORS_PROXY_URL}" >> deployment.env
+ """.trim()
+ }
+ }
+
+ stage('Deploy kie-sandbox-image to OpenShift') {
+ steps {
+ script {
+ openShiftUtils.createOrUpdateApp(
+ "${env.OPENSHIFT_NAMESPACE}",
+ 'daily-dev-kie-sandbox',
+ "${env.DEPLOY_TAG}",
+
"${env.KIE_SANDBOX__imageRegistry}/${env.KIE_SANDBOX__imageAccount}/${env.KIE_SANDBOX__imageName}:${env.DEPLOY_TAG}",
+ "${env.OPENSHIFT_PART_OF}",
+ 'js',
+ "${pipelineVars.openshiftCredentialsId}",
+ './deployment.env'
+ )
+ }
+ }
+ }
+
+ stage('Push serverless-logic-web-tools-swf-builder-image to quay.io') {
+ steps {
+ script {
+ dockerUtils.pushImageToRegistry(
+
"${env.SERVERLESS_LOGIC_WEB_TOOLS__swfBuilderImageRegistry}/${env.SERVERLESS_LOGIC_WEB_TOOLS__swfBuilderImageAccount}",
+
"${env.SERVERLESS_LOGIC_WEB_TOOLS__swfBuilderImageName}",
+
"${env.SERVERLESS_LOGIC_WEB_TOOLS__swfBuilderImageBuildTags}",
+ "${pipelineVars.quayPushCredentialsId}"
+ )
+ }
+ }
+ }
+
+ stage('Push serverless-logic-web-tools-base-builder-image to quay.io')
{
+ steps {
+ script {
+ dockerUtils.pushImageToRegistry(
+
"${env.SERVERLESS_LOGIC_WEB_TOOLS__baseBuilderImageRegistry}/${env.SERVERLESS_LOGIC_WEB_TOOLS__baseBuilderImageAccount}",
+
"${env.SERVERLESS_LOGIC_WEB_TOOLS__baseBuilderImageName}",
+
"${env.SERVERLESS_LOGIC_WEB_TOOLS__baseBuilderImageBuildTags}",
+ "${pipelineVars.quayPushCredentialsId}"
+ )
+ }
+ }
+ }
+
+ stage('Push serverless-logic-web-tools-swf-dev-mode-image to quay.io')
{
+ steps {
+ script {
+ dockerUtils.pushImageToRegistry(
+
"${env.SERVERLESS_LOGIC_WEB_TOOLS__swfDevModeImageRegistry}/${env.SERVERLESS_LOGIC_WEB_TOOLS__swfDevModeImageAccount}",
+
"${env.SERVERLESS_LOGIC_WEB_TOOLS__swfDevModeImageName}",
+
"${env.SERVERLESS_LOGIC_WEB_TOOLS__swfDevModeImageBuildTags}",
+ "${pipelineVars.quayPushCredentialsId}"
+ )
+ }
+ }
+ }
+
+ stage('Push dashbuilder-viewer-image to quay.io') {
+ steps {
+ script {
+ dockerUtils.pushImageToRegistry(
+
"${env.DASHBUILDER__viewerImageRegistry}/${env.DASHBUILDER__viewerImageAccount}",
+ "${env.DASHBUILDER__viewerImageName}",
+ "${env.DASHBUILDER__viewerImageBuildTags}",
+ "${pipelineVars.quayPushCredentialsId}"
+ )
+ }
+ }
+ }
+
+ stage('Update kogito-online resources') {
+ steps {
+ dir('kogito-online') {
+ script {
+ githubUtils.checkoutRepo(
+ 'https://github.com/kiegroup/kogito-online.git',
+ 'gh-pages',
+ "${pipelineVars.kieToolsBotGithubCredentialsId}"
+ )
+
+ sh """#!/bin/bash -el
+ git config --global user.email '[email protected]'
+ git config --global user.name 'KIE Tools Bot
(kiegroup)'
+ git checkout gh-pages
+ rm -rf dev && mkdir -p dev/editors
+ cp -RL ../kie-tools/packages/stunner-editors/dist/dmn
dev/editors/
+ cp -RL ../kie-tools/packages/stunner-editors/dist/bpmn
dev/editors/
+ cp -RL
../kie-tools/packages/stunner-editors/dist/scesim dev/editors/
+ cp -r ../kie-tools/packages/online-editor/dist/* dev/
+ rm -rf dev/gwt-editors
+ ln -s editors dev/gwt-editors
+ git add . && git commit -m "KIE Tools Daily Dev Build
resources - ${env.BUILD_DATE}" || echo 'No changes.'
+ """.trim()
+
+ withCredentials([usernamePassword(credentialsId:
"${pipelineVars.kieToolsBotGithubCredentialsId}", usernameVariable: 'GH_USER',
passwordVariable: 'GH_PASSWORD')]) {
+ sh('set +x && git push
https://$GH_USER:[email protected]/kiegroup/kogito-online.git gh-pages')
+ }
+ }
+ }
+ }
+ }
+
+ stage('Update serverless-logic-sandbox-deployment') {
+ steps {
+ dir('serverless-logic-sandbox-deployment') {
+ script {
+ githubUtils.checkoutRepo(
+
'https://github.com/kiegroup/serverless-logic-sandbox-deployment.git',
+ 'gh-pages',
+ "${pipelineVars.kieToolsBotGithubCredentialsId}"
+ )
+
+ sh """#!/bin/bash -el
+ git config --global user.email '[email protected]'
+ git config --global user.name 'KIE Tools Bot
(kiegroup)'
+ git checkout gh-pages
+ rm -rf dev && mkdir dev
+ cp -r
../kie-tools/packages/serverless-logic-web-tools/dist/* dev/
+ git add . && git commit -m "KIE Tools Daily Dev Build
resources - ${env.BUILD_DATE}" || echo 'No changes.'
+ """.trim()
+
+ withCredentials([usernamePassword(credentialsId:
"${pipelineVars.kieToolsBotGithubCredentialsId}", usernameVariable: 'GH_USER',
passwordVariable: 'GH_PASSWORD')]) {
+ sh('set +x && git push
https://$GH_USER:[email protected]/kiegroup/serverless-logic-sandbox-deployment.git
gh-pages')
+ }
+ }
+ }
+ }
+ }
+ }
+
+ post {
+ always {
+ archiveArtifacts artifacts:
"kie-tools/packages/serverless-workflow-vscode-extension/dist/serverless_workflow_vscode_extension_${env.VERSION}.vsix,
kie-tools/packages/vscode-extension-dashbuilder-editor/dist/vscode_extension_dashbuilder_editor_${env.VERSION}.vsix,
kie-tools/packages/kie-editors-dev-vscode-extension/dist/kie_editors_dev_vscode_extension_${env.VERSION}.vsix,
kie-tools/packages/chrome-extension-pack-kogito-kie-editors/dist/chrome_extension_kogito_kie_editors_${e
[...]
+
+ cleanWs(deleteDirs: true, disableDeferredWipeout: true)
+ }
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]