diff --git a/snippets/jenkins/template/general/Jenkinsfile b/snippets/jenkins/template/general/Jenkinsfile index 19db46e..3bed245 100644 --- a/snippets/jenkins/template/general/Jenkinsfile +++ b/snippets/jenkins/template/general/Jenkinsfile @@ -14,11 +14,11 @@ pipeline { stages { stage('Setup') { steps { - echo 'Setting up test environment' - sh 'echo setup' script { currentBuild.displayName = env.VERSION } + echo 'Setting up test environment' + sh 'echo setup' } } } diff --git a/snippets/jenkins/template/node/Jenkinsfile b/snippets/jenkins/template/node/Jenkinsfile index b5b7134..81d532c 100644 --- a/snippets/jenkins/template/node/Jenkinsfile +++ b/snippets/jenkins/template/node/Jenkinsfile @@ -3,37 +3,20 @@ pipeline { environment { VERSION = VersionNumber([ - versionNumberString: + versionNumberString: '${BUILDS_ALL_TIME}', versionPrefix: '1.0.', worstResultForIncrement: 'SUCCESS' ]) - publish = 0 } stages { - stage('Setup') { + stage('Building') { steps { - echo 'Setting up test environment' - sh 'npm ci' - sh 'nodejs jenkins.js ${VERSION}' script { currentBuild.displayName = env.VERSION } - } - } - } - post { - success { - script { - publish = sh script: "git log -1 | grep '\\[no publish\\]'", returnStatus: true - if (publish != 0) { - echo 'Deploying' - sh 'npm publish' - } else { - echo 'Build successful, Commit not marked for deploying' - currentBuild.result = "UNSTABLE" - } + sh 'yarn ci ${VERSION}' } } } diff --git a/snippets/jenkins/template/node/jenkins.js b/snippets/jenkins/template/node/jenkins.js index c5e4547..099b983 100644 --- a/snippets/jenkins/template/node/jenkins.js +++ b/snippets/jenkins/template/node/jenkins.js @@ -1,7 +1,27 @@ +/* eslint-disable no-process-exit */ +/* eslint-disable no-console */ +/* eslint-disable no-sync */ +'use strict'; + const fs = require ('fs'); +const child_process = require ('child_process'); const pkg = JSON.parse (fs.readFileSync ('package.json', 'utf-8')); [ ,, pkg.version ] = process.argv; fs.writeFileSync ('package.json', JSON.stringify (pkg, null, 2)); + +child_process.execSync ('yarn lint', { stdio: 'inherit' }); +if (typeof pkg.scripts !=='undefined' && typeof pkg.scripts.test === 'string') + child_process.execSync ('yarn test', { stdio: 'inherit' }); + +child_process.exec ('git log -1 | grep \'\\[no publish\\]\'') + .addListener ('exit', (code) => { + if (code === 0) { + console.log ('build not marked for deployment'); + process.exit (1); + } + else + child_process.execSync ('yarn publish'); + });