semantic-release-action/src/handleOptions.js
Geoffrey.C 039e6080a2
Merge pull request #153 from 1nVitr0/main
feat: add `ci` input parameter
2023-03-15 10:49:09 +08:00

114 lines
2.4 KiB
JavaScript

const core = require('@actions/core');
const stringToJson = require('@cycjimmy/awesome-js-funcs/cjs/typeConversion/stringToJson.cjs').default;
const inputs = require('./inputs.json');
/**
* Handle Branches Option
* @returns {{}|{branch: string}}
*/
exports.handleBranchesOption = () => {
const branchesOption = {};
const branches = core.getInput(inputs.branches);
const branch = core.getInput(inputs.branch);
core.debug(`branches input: ${branches}`);
core.debug(`branch input: ${branch}`);
const semanticVersion = require('semantic-release/package.json').version;
const semanticMajorVersion = Number(semanticVersion.replace(/\..+/g, ''));
core.debug(`semanticMajorVersion: ${semanticMajorVersion}`);
// older than v16
if (semanticMajorVersion < 16) {
if (!branch) {
return branchesOption;
}
branchesOption.branch = branch;
return branchesOption;
}
// above v16
const strNeedConvertToJson = branches || branch || '';
if (!strNeedConvertToJson) {
return branchesOption;
}
const jsonOrStr = stringToJson('' + strNeedConvertToJson);
core.debug(`Converted branches attribute: ${JSON.stringify(jsonOrStr)}`);
branchesOption.branches = jsonOrStr;
return branchesOption;
};
/**
* Handle DryRun Option
* @returns {{}|{dryRun: boolean}}
*/
exports.handleDryRunOption = () => {
const dryRun = core.getInput(inputs.dry_run);
switch (dryRun) {
case 'true':
return {dryRun: true};
case 'false':
return {dryRun: false};
default:
return {};
}
};
/**
* Handle Ci Option
* @returns {{}|{ci: boolean}}
*/
exports.handleCiOption = () => {
const ci = core.getInput(inputs.ci);
switch (ci) {
case 'true':
return { ci: true, noCi: false };
case 'false':
return { ci: false, noCi: true };
default:
return {};
}
};
/**
* Handle Extends Option
* @returns {{}|{extends: Array}|{extends: String}}
*/
exports.handleExtends = () => {
const extend = core.getInput(inputs.extends);
if (extend) {
const extendModuleNames = extend.split(/\r?\n/)
.map((name) => name.replace(/(?<!^)@.+/, ''))
return {
extends: extendModuleNames
};
} else {
return {};
}
};
/**
* Handle TagFormat Option
* @returns {{}|{tagFormat: String}}
*/
exports.handleTagFormat = () => {
const tagFormat = core.getInput(inputs.tag_format);
if (tagFormat) {
return {
tagFormat
};
} else {
return {};
}
};