Convert cookiecutter job to pipeline
PROD-37197
Change-Id: I30b0506ed9c0ad2f82524e4413d10963b03e7731
diff --git a/jobs/pipelines/cookied-model-generator.groovy b/jobs/pipelines/cookied-model-generator.groovy
new file mode 100644
index 0000000..3a82388
--- /dev/null
+++ b/jobs/pipelines/cookied-model-generator.groovy
@@ -0,0 +1,49 @@
+/*
+* DEPLOY_EMPTY_NODE Add extra node to heat stack. Node without a role and with salt-minion
+*/
+
+@Library('tcp-qa')_
+
+def common = new com.mirantis.mk.Common()
+def shared = new com.mirantis.system_qa.SharedPipeline()
+
+def batch_size = env.BATCH_SIZE ?: ''
+def dist_upgrade_nodes = "${env.DIST_UPGRADE_NODES}" != "false" ? true : false
+env.LAB_CONFIG_NAME = 'cookied-model-generator'
+
+timeout(time: 23, unit: 'HOURS') {
+ node ("${NODE_NAME}") {
+ env.slave_workdir = pwd()
+
+ def inject_env_vars = [
+ 'VENV_PATH=/home/jenkins/fuel-devops30',
+ "ENV_NAME=swarm_model_${BUILD_NUMBER}",
+ 'LAB_CONFIG_NAME=cookied-model-generator',
+ "SALT_STEPS_PATH=templates/${LAB_CONFIG_NAME}/salt_${LAB_CONTEXT_NAME}.yaml",
+ 'TEST_GROUP=test_generate_model',
+ 'PYTHONIOENCODING=UTF-8',
+ 'MAKE_SNAPSHOT_STAGES=false',
+ 'DEVOPS_LOCK_FILE=/run/lock/devops_lock',
+ ]
+
+ withEnv(inject_env_vars) {
+ try {
+ checkout scm
+ sshagent(credentials: ['f4fb9dd6-ba63-4085-82f7-3fa601334d95']) {
+ sh "/bin/bash ./jobs/pipelines/cookied-model-generator.sh"
+ }
+ } finally {
+ dir("${env.slave_workdir }") {
+ archiveArtifacts artifacts: 'tcp_tests/*.log,tcp_tests/*.tar.gz,tcp_tests/*.xml'
+ venv_cmd = "source ${VENV_PATH}/bin/activate"
+ if (env.SHUTDOWN_ENV_ON_TEARDOWN.toBoolean()){
+ sh "${venv_cmd} && dos.py destroy ${ENV_NAME}"
+ }
+ if (env.ERASE_ENVIRONMENT_AFTER_BUILD.toBoolean()){
+ sh = "${venv_cmd} && dos.py erase ${ENV_NAME}"
+ }
+ }
+ } //try
+ } // withEnv
+ } // node
+} // timeout
diff --git a/jobs/pipelines/cookied-model-generator.sh b/jobs/pipelines/cookied-model-generator.sh
index 8774552..4a5e0b8 100644
--- a/jobs/pipelines/cookied-model-generator.sh
+++ b/jobs/pipelines/cookied-model-generator.sh
@@ -53,9 +53,6 @@
rm -rf ./model
mkdir -p ./model
-eval $(ssh-agent)
-ssh-add ${COOKIECUTTER_TEMPLATES_REPOSITORY_KEY_PATH}
-
# Create remote repository
ssh jenkins@${REMOTE_JENKINS} "
if [[ ! -d /home/jenkins/salt-models/${LAB_CONTEXT_NAME}.git ]]; then
diff --git a/jobs/templates/swarm-cookied-model-generator.yml b/jobs/templates/swarm-cookied-model-generator.yml
index 4ea8a03..d06d422 100644
--- a/jobs/templates/swarm-cookied-model-generator.yml
+++ b/jobs/templates/swarm-cookied-model-generator.yml
@@ -1,5 +1,5 @@
- job-template:
- project-type: freestyle
+ project-type: pipeline
description: "{job-description}
WARNING! models are pushed to the same LAB_CONTEXT_NAME repositories under the specified tags!
Fuel-devops environment is erased after the build by default"
@@ -135,48 +135,13 @@
default: ''
logrotate:
daysToKeep: 365
- scm:
+ pipeline-scm:
+ lightweight-checkout: false
+ scm:
- git:
branches:
- - FETCH_HEAD
- refspec: '${{TCP_QA_REFS}}'
+ - FETCH_HEAD
+ refspec: ${{TCP_QA_REFS}}
url: https://gerrit.mcp.mirantis.com/mcp/tcp-qa
- wrappers:
- - inject:
- properties-content: |-
- VENV_PATH=/home/jenkins/fuel-devops30
- ENV_NAME=swarm_model_$BUILD_NUMBER
- LAB_CONFIG_NAME=cookied-model-generator
+ script-path: jobs/pipelines/cookied-model-generator.groovy
- SALT_STEPS_PATH=templates/$LAB_CONFIG_NAME/salt_$LAB_CONTEXT_NAME.yaml
-
- TEST_GROUP=test_generate_model
- #STORAGE_POOL_NAME=second_pool
- PYTHONIOENCODING=UTF-8
- MAKE_SNAPSHOT_STAGES=false
- DEVOPS_LOCK_FILE=/run/lock/devops_lock
- - credentials-binding:
- - ssh-user-private-key:
- credential-id: f4fb9dd6-ba63-4085-82f7-3fa601334d95
- key-file-variable: COOKIECUTTER_TEMPLATES_REPOSITORY_KEY_PATH
- builders:
- - shell: "chmod +x jobs/pipelines/cookied-model-generator.sh"
- - shell: "./jobs/pipelines/cookied-model-generator.sh"
- publishers:
- - archive:
- artifacts: 'tcp_tests/*.log,tcp_tests/*.tar.gz,tcp_tests/*.xml'
- allow-empty: false
- - post-tasks:
- - run-if-job-successful: false
- matches:
- # Small hack to start post-tasks every time after build
- - log-text: test session starts
- - operator: OR
- script: " . $VENV_PATH/bin/activate;
- if [ $SHUTDOWN_ENV_ON_TEARDOWN = 'true' ]; then
- dos.py destroy $ENV_NAME || true;
- fi;
-
- if [ $ERASE_ENVIRONMENT_AFTER_BUILD = 'true' ]; then
- dos.py erase $ENV_NAME || true;
- fi;"