fix: add semantic tags prepended with v
parent
fb86052d28
commit
0fa866c456
|
|
@ -1,30 +1,3 @@
|
||||||
const addVariantsPrependingV = (array: string[]) => array.map((tag) => [tag, `v${tag}`]).flat();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Array of versions that will be detected as version tags. Not all of these are
|
|
||||||
* "semantic versions", but can be used to generate one. Especially using the
|
|
||||||
* `versioning: Semantic` option.
|
|
||||||
*/
|
|
||||||
export const validVersionTagInputs = addVariantsPrependingV(['0', '1', '0.1', '1.0', '1.1.0', '1.2.3']);
|
|
||||||
export const invalidVersionTagInputs = addVariantsPrependingV([
|
|
||||||
'+invalid',
|
|
||||||
'-invalid',
|
|
||||||
'-invalid+invalid',
|
|
||||||
'-invalid.01',
|
|
||||||
'alpha',
|
|
||||||
'alpha.beta',
|
|
||||||
'alpha.beta.1',
|
|
||||||
'alpha.1',
|
|
||||||
'alpha+beta',
|
|
||||||
'alpha_beta',
|
|
||||||
'alpha.',
|
|
||||||
'alpha..',
|
|
||||||
'beta',
|
|
||||||
'-alpha.',
|
|
||||||
'-1.0.3-gamma+b7718',
|
|
||||||
'+justmeta',
|
|
||||||
]);
|
|
||||||
|
|
||||||
export const completelyValidSemanticVersions = [
|
export const completelyValidSemanticVersions = [
|
||||||
'0.0.4',
|
'0.0.4',
|
||||||
'1.2.3',
|
'1.2.3',
|
||||||
|
|
@ -59,7 +32,6 @@ export const completelyValidSemanticVersions = [
|
||||||
'1.0.0-0A.is.legal',
|
'1.0.0-0A.is.legal',
|
||||||
];
|
];
|
||||||
|
|
||||||
// Not completely valid semantic versions
|
|
||||||
export const notCompletelyValidSemanticVersions = [
|
export const notCompletelyValidSemanticVersions = [
|
||||||
'1',
|
'1',
|
||||||
'1.2',
|
'1.2',
|
||||||
|
|
@ -102,3 +74,39 @@ export const notCompletelyValidSemanticVersions = [
|
||||||
'9.8.7-whatever+meta+meta',
|
'9.8.7-whatever+meta+meta',
|
||||||
'99999999999999999999999.999999999999999999.99999999999999999----RC-SNAPSHOT.12.09.1--------------------------------..12',
|
'99999999999999999999999.999999999999999999.99999999999999999----RC-SNAPSHOT.12.09.1--------------------------------..12',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const addVariantsPrependingV = (array: string[]) => array.map((tag) => [tag, `v${tag}`]).flat();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Array of versions that will be detected as version tags. Not all of these are
|
||||||
|
* "semantic versions", but can be used to generate one. Especially using the
|
||||||
|
* `versioning: Semantic` option.
|
||||||
|
*/
|
||||||
|
export const validVersionTagInputs = addVariantsPrependingV([
|
||||||
|
'0',
|
||||||
|
'1',
|
||||||
|
'0.1',
|
||||||
|
'1.0',
|
||||||
|
'1.1.0',
|
||||||
|
'1.2.3',
|
||||||
|
...completelyValidSemanticVersions,
|
||||||
|
]);
|
||||||
|
|
||||||
|
export const invalidVersionTagInputs = addVariantsPrependingV([
|
||||||
|
'+invalid',
|
||||||
|
'-invalid',
|
||||||
|
'-invalid+invalid',
|
||||||
|
'-invalid.01',
|
||||||
|
'alpha',
|
||||||
|
'alpha.beta',
|
||||||
|
'alpha.beta.1',
|
||||||
|
'alpha.1',
|
||||||
|
'alpha+beta',
|
||||||
|
'alpha_beta',
|
||||||
|
'alpha.',
|
||||||
|
'alpha..',
|
||||||
|
'beta',
|
||||||
|
'-alpha.',
|
||||||
|
'-1.0.3-gamma+b7718',
|
||||||
|
'+justmeta',
|
||||||
|
]);
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import * as core from '@actions/core';
|
||||||
import NotImplementedException from './error/not-implemented-exception';
|
import NotImplementedException from './error/not-implemented-exception';
|
||||||
import System from './system';
|
import System from './system';
|
||||||
import Versioning from './versioning';
|
import Versioning from './versioning';
|
||||||
import { completelyValidSemanticVersions, validVersionTagInputs, invalidVersionTagInputs } from './__data__/versions';
|
import { validVersionTagInputs, invalidVersionTagInputs } from './__data__/versions';
|
||||||
|
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
jest.restoreAllMocks();
|
jest.restoreAllMocks();
|
||||||
|
|
@ -50,10 +50,6 @@ describe('Versioning', () => {
|
||||||
expect(await matchInputUsingGrep(input)).toStrictEqual(input);
|
expect(await matchInputUsingGrep(input)).toStrictEqual(input);
|
||||||
});
|
});
|
||||||
|
|
||||||
it.concurrent.each(completelyValidSemanticVersions)(`accepts valid semantic version '%s'`, async (input) => {
|
|
||||||
expect(await matchInputUsingGrep(input)).toStrictEqual(input);
|
|
||||||
});
|
|
||||||
|
|
||||||
it.concurrent.each(invalidVersionTagInputs)(`rejects non-version tag input '%s'`, async (input) => {
|
it.concurrent.each(invalidVersionTagInputs)(`rejects non-version tag input '%s'`, async (input) => {
|
||||||
await expect(async () => matchInputUsingGrep(input)).rejects.toThrowError(/^Failed to run/);
|
await expect(async () => matchInputUsingGrep(input)).rejects.toThrowError(/^Failed to run/);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue