diff --git a/index.js b/index.js index 5842236..ee41dbf 100644 --- a/index.js +++ b/index.js @@ -1,4 +1,5 @@ module.exports = { prepare: require('./src/prepare'), - publish: require('./src/publish') + publish: require('./src/publish'), + verifyConditions: require('./src/verify-conditions') }; diff --git a/src/maven.js b/src/maven.js index f6d252b..4eb18d2 100644 --- a/src/maven.js +++ b/src/maven.js @@ -5,14 +5,14 @@ const SemanticReleaseError = require("@semantic-release/error"); const execa = require('execa'); -function exec () { +function exec() { const childProcess = execa(...arguments); childProcess.stdout.pipe(process.stdout); childProcess.stderr.pipe(process.stderr); return childProcess; } -async function updateVersion (logger, versionStr) { +async function updateVersion(logger, versionStr) { logger.log(`Updating pom.xml to version ${versionStr}`); await exec( 'mvn', @@ -20,7 +20,7 @@ async function updateVersion (logger, versionStr) { ); } -async function deploy (logger, nextRelease, settingsFile) { +async function deploy(logger, nextRelease, settingsFile) { logger.log('Deploying version %s with maven', nextRelease.version); try { await exec( @@ -34,7 +34,22 @@ async function deploy (logger, nextRelease, settingsFile) { } } +async function testMvn(logger) { + logger.log('Testing if mvn exists'); + try { + await exec( + 'mvn', + ['-v'] + ) + } catch (e) { + logger.error('failed to run mvn'); + logger.errror(e); + throw new SemanticReleaseError('failed to run mvn'); + } +} + module.exports = { deploy, - updateVersion + updateVersion, + testMvn }; diff --git a/src/verify-conditions.js b/src/verify-conditions.js new file mode 100644 index 0000000..9180b1a --- /dev/null +++ b/src/verify-conditions.js @@ -0,0 +1,7 @@ +const { + testMvn +} = require("./maven"); + +module.exports = async function prepare(logger) { + await testMvn(logger); +};