Add tag-match-group input to choose group to get if tag-match matches

Check tag-match is a valid regex
This commit is contained in:
CrazyMax
2020-10-27 02:32:26 +01:00
parent ad83daa929
commit 6fe5b3f6bb
8 changed files with 74 additions and 16 deletions

View File

@ -6,6 +6,7 @@ export interface Inputs {
tagEdge: boolean;
tagEdgeBranch: string;
tagMatch: string;
tagMatchGroup: number;
tagMatchLatest: boolean;
tagSchedule: string;
sepTags: string;
@ -20,6 +21,7 @@ export function getInputs(): Inputs {
tagEdge: /true/i.test(core.getInput('tag-edge') || 'false'),
tagEdgeBranch: core.getInput('tag-edge-branch'),
tagMatch: core.getInput('tag-match'),
tagMatchGroup: Number(core.getInput('tag-match-group')) || 0,
tagMatchLatest: /true/i.test(core.getInput('tag-match-latest') || 'true'),
tagSchedule: core.getInput('tag-schedule') || 'nightly',
sepTags: core.getInput('sep-tags') || `\n`,

View File

@ -41,9 +41,15 @@ export class Meta {
} else if (/^refs\/tags\//.test(this.context.ref)) {
version.version = this.context.ref.replace(/^refs\/tags\//g, '').replace(/\//g, '-');
if (this.inputs.tagMatch) {
const tagMatch = version.version.match(this.inputs.tagMatch);
let tagMatch;
const isRegEx = this.inputs.tagMatch.match(/^\/(.+)\/(.*)$/);
if (isRegEx) {
tagMatch = version.version.match(new RegExp(isRegEx[1], isRegEx[2]));
} else {
tagMatch = version.version.match(this.inputs.tagMatch);
}
if (tagMatch) {
version.version = tagMatch[0];
version.version = tagMatch[this.inputs.tagMatchGroup];
version.latest = this.inputs.tagMatchLatest;
}
}