From e55457c8f5eaa1dfa1b5b982d16c1a993cf2f7b4 Mon Sep 17 00:00:00 2001 From: Timo Hocker Date: Wed, 13 May 2020 15:51:52 +0200 Subject: [PATCH] adapt jenkins.js --- jenkins.js | 63 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 26 deletions(-) diff --git a/jenkins.js b/jenkins.js index 0902b0c..f179a9e 100644 --- a/jenkins.js +++ b/jenkins.js @@ -1,26 +1,37 @@ -/* 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' }); -child_process.execSync ('yarn test', { stdio: 'inherit' }); -child_process.execSync ('yarn compile', { 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 --access public'); } - }); +/* 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' }); child_process.execSync ('yarn test', { stdio: +'inherit' }); child_process.execSync ('yarn compile', { stdio: 'inherit' +}); +if (typeof pkg.description === 'undefined' || pkg.description === '') { + console.log ('description undefined'); + process.exit (1); +} +if (typeof pkg.repository === 'undefined') { + console.log ('repository undefined'); + process.exit (1); +} +function major (version) { + return version.replace (/\.[0-9]+$/ui, ''); +} +if (fs.existsSync ('README.md')) { + const readme = fs.readFileSync ('README.md', 'utf-8'); + // eslint-disable-next-line prefer-named-capture-group + const version = (/version: ([0-9.]+)/ui).exec (readme); + if ( + version === null + || major (version[1]) !== major (pkg.version) + ) { + console.log ('readme version does not match package version'); + process.exit (1); + } + else { child_process.execSync ('yarn publish --access public'); } +} +else { + console.log ('readme does not exist'); + process.exit (1); +}