- Remove the `getLastRelease` plugin type - Retrieve the last release based on Git tags - Create the next release Git tag before calling the `publish` plugins BREAKING CHANGE: Remove the `getLastRelease` plugin type The `getLastRelease` plugins will not be called anymore. BREAKING CHANGE: Git repository authentication is now mandatory The Git authentication is now mandatory and must be set via `GH_TOKEN`, `GITHUB_TOKEN`, `GL_TOKEN`, `GITLAB_TOKEN` or `GIT_CREDENTIALS` as described in [CI configuration](https://github.com/semantic-release/semantic-release/blob/caribou/docs/usage/ci-configuration.md#authentication).
28 lines
813 B
JavaScript
28 lines
813 B
JavaScript
const SemanticReleaseError = require('@semantic-release/error');
|
||
const {isGitRepo, verifyAuth} = require('./git');
|
||
|
||
module.exports = async (options, branch, logger) => {
|
||
if (!await isGitRepo()) {
|
||
logger.error('Semantic-release must run from a git repository.');
|
||
return false;
|
||
}
|
||
|
||
if (!await verifyAuth(options.repositoryUrl, options.branch)) {
|
||
throw new SemanticReleaseError(
|
||
`The git credentials doesn't allow to push on the branch ${options.branch}.`,
|
||
'EGITNOPERMISSION'
|
||
);
|
||
}
|
||
|
||
if (branch !== options.branch) {
|
||
logger.log(
|
||
`This test run was triggered on the branch ${branch}, while semantic-release is configured to only publish from ${
|
||
options.branch
|
||
}, therefore a new version won’t be published.`
|
||
);
|
||
return false;
|
||
}
|
||
|
||
return true;
|
||
};
|