diff --git a/jenkins.run.js b/jenkins.run.js new file mode 100644 index 0000000..37c1969 --- /dev/null +++ b/jenkins.run.js @@ -0,0 +1,47 @@ +/* eslint-disable */ + +'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-9x]+$/ui, ''); +} + +if (fs.existsSync ('README.md')) { + const readme = fs.readFileSync ('README.md', 'utf-8'); + const version = (/version: ([0-9x.]+)/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); +}