@interaktiv/dia-scripts
Version:
CLI toolbox with common scripts for most sort of projects at DIA
42 lines (36 loc) • 1.46 kB
JavaScript
;
const spawn = require('cross-spawn');
const {
getConcurrentlyArgs,
hasFile,
isOptedIn,
parseEnv,
resolveBin,
resolveSelf
} = require('../utils');
/**
* NOTE:
* Look at Travis Build Stages https://docs.travis-ci.com/user/build-stages,
* https://semantic-release.gitbook.io/semantic-release/usage/ci-configuration#run-semantic-release-only-after-all-tests-succeeded to
* configure Travis correctly and trigger auto release only after all jobs
* (to test with multiple Node versions and/or OSs) are completed successfully.
*/
(function () {
const autorelease = parseEnv('TRAVIS', false) && process.env.TRAVIS_BRANCH === 'master' && parseEnv('TRAVIS_PULL_REQUEST', false) === false;
const reportCoverage = hasFile('coverage') && (parseEnv('SKIP_CODECOV', true) === false || isOptedIn('reportcoverage'));
if (autorelease === false && reportCoverage === false) {
console.log('No need to autorelease or report coverage. Skipping travis-after-success script...');
process.exit(0);
return;
}
const diaScripts = resolveSelf();
const result = spawn.sync(resolveBin('concurrently'), getConcurrentlyArgs({
codecov: reportCoverage ? `echo installing codecov ☂️ && npx --package codecov@3 --call 'echo running codecov ☂️ && codecov'` : null,
release: autorelease ? `${diaScripts} release` : null
}, {
killOthers: false
}), {
stdio: 'inherit'
});
process.exit(result.status);
})();