31 lines
714 B
JavaScript
31 lines
714 B
JavaScript
const RELEASE_VERSION_PATTERN = /^\d+(?:\.\d+)*$/;
|
|
|
|
export function normalizeReleaseVersionTag(value) {
|
|
if (typeof value !== "string") {
|
|
return null;
|
|
}
|
|
|
|
const normalized = value.trim().replace(/^v/i, "");
|
|
if (!RELEASE_VERSION_PATTERN.test(normalized)) {
|
|
return null;
|
|
}
|
|
|
|
return normalized;
|
|
}
|
|
|
|
export function resolveReleaseVersion(
|
|
env = process.env,
|
|
fallbackVersion = "0.2.0421.2"
|
|
) {
|
|
const candidates = [env.EXTENSION_VERSION, env.DRONE_TAG, fallbackVersion];
|
|
|
|
for (const candidate of candidates) {
|
|
const normalized = normalizeReleaseVersionTag(candidate);
|
|
if (normalized) {
|
|
return normalized;
|
|
}
|
|
}
|
|
|
|
throw new Error("unable to resolve a valid release version");
|
|
}
|