mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Add support for using release branch targetted PRs (#7291)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
parent
1d78912dd8
commit
aad19677db
@ -57,6 +57,7 @@ interface GithubPrData {
|
|||||||
|
|
||||||
interface ExtendedGithubPrData extends Omit<GithubPrData, "mergedAt"> {
|
interface ExtendedGithubPrData extends Omit<GithubPrData, "mergedAt"> {
|
||||||
mergedAt: Date;
|
mergedAt: Date;
|
||||||
|
shouldAttemptCherryPick: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getCurrentBranch(): Promise<string> {
|
async function getCurrentBranch(): Promise<string> {
|
||||||
@ -190,7 +191,7 @@ function sortExtendedGithubPrData(left: ExtendedGithubPrData, right: ExtendedGit
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getRelevantPRs(previousReleasedVersion: string): Promise<ExtendedGithubPrData[]> {
|
async function getRelevantPRs(previousReleasedVersion: string, baseBranch: string): Promise<ExtendedGithubPrData[]> {
|
||||||
console.log("retrieving previous 200 PRs...");
|
console.log("retrieving previous 200 PRs...");
|
||||||
|
|
||||||
const milestone = formatVersionForPickingPrs(await getCurrentVersionOfSubPackage("core"));
|
const milestone = formatVersionForPickingPrs(await getCurrentVersionOfSubPackage("core"));
|
||||||
@ -200,7 +201,7 @@ async function getRelevantPRs(previousReleasedVersion: string): Promise<Extended
|
|||||||
"list",
|
"list",
|
||||||
"--limit=500", // Should be big enough, if not we need to release more often ;)
|
"--limit=500", // Should be big enough, if not we need to release more often ;)
|
||||||
"--state=merged",
|
"--state=merged",
|
||||||
"--base=master",
|
`--base=${baseBranch}`,
|
||||||
"--json mergeCommit,title,author,labels,number,milestone,mergedAt",
|
"--json mergeCommit,title,author,labels,number,milestone,mergedAt",
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -217,7 +218,11 @@ async function getRelevantPRs(previousReleasedVersion: string): Promise<Extended
|
|||||||
.filter(query => query.stdout)
|
.filter(query => query.stdout)
|
||||||
.map(query => query.pr)
|
.map(query => query.pr)
|
||||||
.filter(pr => pr.labels.every(label => label.name !== "skip-changelog"))
|
.filter(pr => pr.labels.every(label => label.name !== "skip-changelog"))
|
||||||
.map(pr => ({ ...pr, mergedAt: new Date(pr.mergedAt) } as ExtendedGithubPrData))
|
.map(pr => ({
|
||||||
|
...pr,
|
||||||
|
mergedAt: new Date(pr.mergedAt),
|
||||||
|
shouldAttemptCherryPick: baseBranch === "master",
|
||||||
|
}))
|
||||||
.sort(sortExtendedGithubPrData);
|
.sort(sortExtendedGithubPrData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -300,7 +305,11 @@ async function cherryPickCommits(prs: ExtendedGithubPrData[]): Promise<void> {
|
|||||||
const cherryPickCommit = cherryPickCommitWith(rl);
|
const cherryPickCommit = cherryPickCommitWith(rl);
|
||||||
|
|
||||||
for (const pr of prs) {
|
for (const pr of prs) {
|
||||||
await cherryPickCommit(pr.mergeCommit.oid);
|
if (pr.shouldAttemptCherryPick) {
|
||||||
|
await cherryPickCommit(pr.mergeCommit.oid);
|
||||||
|
} else {
|
||||||
|
console.log(`Skipping cherry picking of #${pr.number} - ${pr.title}`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rl.close();
|
rl.close();
|
||||||
@ -335,7 +344,12 @@ async function createRelease(): Promise<void> {
|
|||||||
await bumpPackageVersions();
|
await bumpPackageVersions();
|
||||||
}
|
}
|
||||||
|
|
||||||
const relevantPrs = await getRelevantPRs(previousReleasedVersion);
|
const relevantPrs = await getRelevantPRs(previousReleasedVersion, "master");
|
||||||
|
|
||||||
|
if (prBase !== "master") {
|
||||||
|
relevantPrs.push(...await getRelevantPRs(previousReleasedVersion, prBase));
|
||||||
|
}
|
||||||
|
|
||||||
const selectedPrs = await pickRelevantPrs(relevantPrs, isMasterBranch);
|
const selectedPrs = await pickRelevantPrs(relevantPrs, isMasterBranch);
|
||||||
const prBody = formatChangelog(previousReleasedVersion, selectedPrs);
|
const prBody = formatChangelog(previousReleasedVersion, selectedPrs);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user