From 96df4b5a8f224c97d6a997f391c6b2bf8ecdb573 Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Mon, 15 May 2023 19:20:38 +0300 Subject: [PATCH] Create Jenkinsfile --- Jenkinsfile | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 00000000..6d402f33 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,63 @@ +List target_sites = (env.TARGET_SITES == null) ? [] : env.TARGET_SITES.split(';') +List exclude_sites = (env.EXCLUDE_SITES == null) ? [] : env.EXCLUDE_SITES.split(';') + +target_sites.removeAll { it in exclude_sites } + +Map matrix_axes = [ + SITE: target_sites +] + +@NonCPS +List getMatrixAxes(Map matrix_axes) { + List axes = [] + matrix_axes.each { axis, values -> + List axisList = [] + values.each { value -> + axisList << [(axis): value] + } + axes << axisList + } + axes.combinations()*.sum() +} + +List axes = getMatrixAxes(matrix_axes) + +Map tasks = [failFast: false] + +for(int i = 0; i < axes.size(); i++) { + Map axis = axes[i] + List axisEnv = axis.collect { k, v -> + "${k}=${v}" + } + tasks[axisEnv.join(', ')] = { -> + env.NODEJS_HOME = "${tool 'node'}" + env.PATH="${env.NODEJS_HOME}/bin:${env.PATH}" + + node { + skipDefaultCheckout() + withEnv(axisEnv) { + try { + cleanWs() + checkout scm + sh 'npm install' + sh "npm run grab" + } finally { + archiveArtifacts artifacts: "guides/**/*.xml", onlyIfSuccessful: true + cleanWs( + cleanWhenNotBuilt: false, + deleteDirs: true, + disableDeferredWipeout: true, + notFailBuild: true, + patterns: [[pattern: '.gitignore', type: 'INCLUDE'], + [pattern: '.propsfile', type: 'EXCLUDE']]) + } + } + } + } +} + +node { + stage('Load') { + parallel(tasks) + } +} \ No newline at end of file