From d53641ea1bec32ff8a07b2cb1845ea4de4754e1d Mon Sep 17 00:00:00 2001 From: Timo Hocker Date: Wed, 11 Dec 2019 12:16:12 +0100 Subject: [PATCH] add Jenkins --- Jenkinsfile | 46 ++++++++++++++++++++++++++++++++++++++++++++++ jenkins.js | 5 +++++ 2 files changed, 51 insertions(+) create mode 100644 Jenkinsfile create mode 100644 jenkins.js diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..b0e8952 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,46 @@ +pipeline { + agent any + + environment { + VERSION = VersionNumber([ + versionNumberString: + '${BUILDS_ALL_TIME}', + versionPrefix: '1.1.', + worstResultForIncrement: 'SUCCESS' + ]) + publish = 0 + } + + stages { + stage('Setup') { + steps { + echo 'Setting up test environment' + sh 'npm ci' + sh 'nodejs jenkins.js ${VERSION}' + script { + currentBuild.displayName = env.VERSION + } + } + } + stage('Testing') { + steps { + echo 'Running tests...' + sh 'npm test' + } + } + } + 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" + } + } + } + } +} \ No newline at end of file diff --git a/jenkins.js b/jenkins.js new file mode 100644 index 0000000..35bad82 --- /dev/null +++ b/jenkins.js @@ -0,0 +1,5 @@ +const fs = require('fs'); + +const pkg = JSON.parse(fs.readFileSync('package.json', 'utf-8')); +pkg.version = process.argv[2]; +fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2));