semantic-branch-version/index.js

40 lines
946 B
JavaScript
Raw Normal View History

const core = require('@actions/core');
2020-07-04 23:47:33 +08:00
const execlib = require('@actions/exec');
try {
2020-07-05 14:46:24 +08:00
getBranchName()
2020-07-05 14:49:01 +08:00
.then(name => {
core.setOutput("branchname", name)
2020-07-05 15:18:35 +08:00
const versionNumber = extractVersion(name);
if (versionNumber) {
core.setOutput('version', versionNumber);
2020-07-05 15:22:32 +08:00
console.log(versionNumber);
2020-07-05 15:18:35 +08:00
}
2020-07-05 14:49:01 +08:00
});
2020-07-05 00:45:30 +08:00
} catch (error) {
core.setFailed(error.message);
}
async function getBranchName() {
let output = '';
2020-07-04 23:47:33 +08:00
const options = {
listeners: {
2020-07-05 14:42:39 +08:00
stdout: (data) => {
output += data.toString();
}
2020-07-05 01:03:59 +08:00
}
2020-07-04 23:47:33 +08:00
};
await execlib.exec('git', ['branch', '--show-current'], options);
2020-07-05 00:45:30 +08:00
return output;
2020-07-05 15:18:35 +08:00
}
function extractVersion(branch) {
const regexp = /([0-9]\.[0-9]\.[0-9])|([0-9]\.[0-9])|([0-9])/g;
const matches = branch.match(regexp);
return matches ? matches.shift() : null;
}