mirror of
https://github.com/garronej/ts-ci.git
synced 2025-11-30 21:43:05 +00:00
Enable to release update for previous major
This commit is contained in:
parent
6a267b716c
commit
1b498f1789
4 changed files with 60 additions and 21 deletions
|
|
@ -6,6 +6,8 @@ import { NpmModuleVersion } from "./tools/NpmModuleVersion";
|
|||
import { getActionParamsFactory } from "./inputHelper";
|
||||
import { createOctokit } from "./tools/createOctokit";
|
||||
import { getLatestSemVersionedTagFactory } from "./tools/octokit-addons/getLatestSemVersionedTag";
|
||||
import type { Param0 } from "tsafe";
|
||||
|
||||
|
||||
export const { getActionParams } = getActionParamsFactory({
|
||||
"inputNameSubset": [
|
||||
|
|
@ -52,13 +54,31 @@ export async function action(
|
|||
|
||||
const { getLatestSemVersionedTag } = getLatestSemVersionedTagFactory({ octokit });
|
||||
|
||||
const { version: from_version } = await getLatestSemVersionedTag({
|
||||
owner,
|
||||
repo,
|
||||
"beta": to_version.betaPreRelease !== undefined ?
|
||||
"ONLY LOOK FOR BETA" : "IGNORE BETA"
|
||||
})
|
||||
.then(wrap => wrap === undefined ? { "version": NpmModuleVersion.parse("0.0.0") } : wrap);
|
||||
const from_version= await (async () => {
|
||||
|
||||
const getLatestSemVersionedTagParam: Param0<typeof getLatestSemVersionedTag> = {
|
||||
owner,
|
||||
repo,
|
||||
"beta": to_version.betaPreRelease !== undefined ?
|
||||
"ONLY LOOK FOR BETA" : "IGNORE BETA",
|
||||
"major": to_version.major
|
||||
};
|
||||
|
||||
let wrap = await getLatestSemVersionedTag(getLatestSemVersionedTagParam);
|
||||
|
||||
if( wrap !== undefined ){
|
||||
return wrap.version;
|
||||
}
|
||||
wrap = await getLatestSemVersionedTag({ ...getLatestSemVersionedTagParam, "major": undefined });
|
||||
|
||||
if( wrap !== undefined ){
|
||||
return wrap.version;
|
||||
}
|
||||
|
||||
return NpmModuleVersion.parse("0.0.0");
|
||||
|
||||
|
||||
})();
|
||||
|
||||
core.debug(`Last version was ${NpmModuleVersion.stringify(from_version)}`);
|
||||
|
||||
|
|
@ -69,7 +89,7 @@ export async function action(
|
|||
|
||||
core.debug(`Is version upgraded: ${is_upgraded_version}`);
|
||||
|
||||
const is_release_beta= is_upgraded_version === "false" ? "false" : to_version.betaPreRelease !== undefined ? "true" : "false";
|
||||
const is_release_beta = is_upgraded_version === "false" ? "false" : to_version.betaPreRelease !== undefined ? "true" : "false";
|
||||
|
||||
core.debug(`Is release beta: ${is_release_beta}`);
|
||||
|
||||
|
|
@ -103,10 +123,10 @@ async function getPackageJsonVersion(params: {
|
|||
.then(res => res.text())
|
||||
.then(text => JSON.parse(text))
|
||||
.then(({ version }) => version as string)
|
||||
.catch(()=> undefined)
|
||||
.catch(() => undefined)
|
||||
;
|
||||
|
||||
if( version === undefined){
|
||||
if (version === undefined) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,13 +12,14 @@ export function getLatestSemVersionedTagFactory(params: { octokit: Octokit; }) {
|
|||
owner: string;
|
||||
repo: string;
|
||||
beta: "ONLY LOOK FOR BETA" | "IGNORE BETA" | "BETA OR REGULAR RELEASE";
|
||||
major: number | undefined;
|
||||
}
|
||||
): Promise<{
|
||||
tag: string;
|
||||
version: NpmModuleVersion;
|
||||
} | undefined> {
|
||||
|
||||
const { owner, repo, beta } = params;
|
||||
const { owner, repo, beta, major } = params;
|
||||
|
||||
const semVersionedTags: { tag: string; version: NpmModuleVersion; }[] = [];
|
||||
|
||||
|
|
@ -32,6 +33,10 @@ export function getLatestSemVersionedTagFactory(params: { octokit: Octokit; }) {
|
|||
|
||||
version = NpmModuleVersion.parse(tag.replace(/^[vV]?/, ""));
|
||||
|
||||
if (major !== undefined && version.major !== major) {
|
||||
continue;
|
||||
}
|
||||
|
||||
} catch {
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ export async function action(
|
|||
|
||||
const { getLatestSemVersionedTag } = getLatestSemVersionedTagFactory({ octokit });
|
||||
|
||||
const { tag: branchBehind } = (await getLatestSemVersionedTag({ owner, repo, "beta": "IGNORE BETA" })) ?? {};
|
||||
const { tag: branchBehind } = (await getLatestSemVersionedTag({ owner, repo, "beta": "IGNORE BETA", "major": undefined })) ?? {};
|
||||
|
||||
if( branchBehind === undefined ){
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue