fix(dev-infra): wait for changelog to cherry pick to next branch (#40605)
Wait for the cherry-picked changelog to be merged into the next branch before completing the task. PR Close #40605
This commit is contained in:
parent
9746751603
commit
dceede4f80
|
@ -5885,11 +5885,13 @@ class ReleaseAction {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Create a cherry-pick pull request that should be merged by the caretaker.
|
// Create a cherry-pick pull request that should be merged by the caretaker.
|
||||||
const { url } = yield this.pushChangesToForkAndCreatePullRequest(nextBranch, `changelog-cherry-pick-${newVersion}`, commitMessage, `Cherry-picks the changelog from the "${stagingBranch}" branch to the next ` +
|
const { url, id } = yield this.pushChangesToForkAndCreatePullRequest(nextBranch, `changelog-cherry-pick-${newVersion}`, commitMessage, `Cherry-picks the changelog from the "${stagingBranch}" branch to the next ` +
|
||||||
`branch (${nextBranch}).`);
|
`branch (${nextBranch}).`);
|
||||||
info(green(` ✓ Pull request for cherry-picking the changelog into "${nextBranch}" ` +
|
info(green(` ✓ Pull request for cherry-picking the changelog into "${nextBranch}" ` +
|
||||||
'has been created.'));
|
'has been created.'));
|
||||||
info(yellow(` Please ask team members to review: ${url}.`));
|
info(yellow(` Please ask team members to review: ${url}.`));
|
||||||
|
// Wait for the Pull Request to be merged.
|
||||||
|
yield this.waitForPullRequestToBeMerged(id);
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -450,7 +450,7 @@ export abstract class ReleaseAction {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create a cherry-pick pull request that should be merged by the caretaker.
|
// Create a cherry-pick pull request that should be merged by the caretaker.
|
||||||
const {url} = await this.pushChangesToForkAndCreatePullRequest(
|
const {url, id} = await this.pushChangesToForkAndCreatePullRequest(
|
||||||
nextBranch, `changelog-cherry-pick-${newVersion}`, commitMessage,
|
nextBranch, `changelog-cherry-pick-${newVersion}`, commitMessage,
|
||||||
`Cherry-picks the changelog from the "${stagingBranch}" branch to the next ` +
|
`Cherry-picks the changelog from the "${stagingBranch}" branch to the next ` +
|
||||||
`branch (${nextBranch}).`);
|
`branch (${nextBranch}).`);
|
||||||
|
@ -459,6 +459,10 @@ export abstract class ReleaseAction {
|
||||||
` ✓ Pull request for cherry-picking the changelog into "${nextBranch}" ` +
|
` ✓ Pull request for cherry-picking the changelog into "${nextBranch}" ` +
|
||||||
'has been created.'));
|
'has been created.'));
|
||||||
info(yellow(` Please ask team members to review: ${url}.`));
|
info(yellow(` Please ask team members to review: ${url}.`));
|
||||||
|
|
||||||
|
// Wait for the Pull Request to be merged.
|
||||||
|
await this.waitForPullRequestToBeMerged(id);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -93,7 +93,8 @@ describe('common release action logic', () => {
|
||||||
// it is properly appended. Also expect a pull request to be created in the fork.
|
// it is properly appended. Also expect a pull request to be created in the fork.
|
||||||
repo.expectChangelogFetch(branchName, fakeReleaseNotes)
|
repo.expectChangelogFetch(branchName, fakeReleaseNotes)
|
||||||
.expectFindForkRequest(fork)
|
.expectFindForkRequest(fork)
|
||||||
.expectPullRequestToBeCreated('master', fork, forkBranchName, 200);
|
.expectPullRequestToBeCreated('master', fork, forkBranchName, 200)
|
||||||
|
.expectPullRequestWait(200);
|
||||||
|
|
||||||
// Simulate that the fork branch name is available.
|
// Simulate that the fork branch name is available.
|
||||||
fork.expectBranchRequest(forkBranchName, null);
|
fork.expectBranchRequest(forkBranchName, null);
|
||||||
|
@ -119,7 +120,8 @@ describe('common release action logic', () => {
|
||||||
// it is properly appended. Also expect a pull request to be created in the fork.
|
// it is properly appended. Also expect a pull request to be created in the fork.
|
||||||
repo.expectChangelogFetch(branchName, customReleaseNotes)
|
repo.expectChangelogFetch(branchName, customReleaseNotes)
|
||||||
.expectFindForkRequest(fork)
|
.expectFindForkRequest(fork)
|
||||||
.expectPullRequestToBeCreated('master', fork, forkBranchName, 200);
|
.expectPullRequestToBeCreated('master', fork, forkBranchName, 200)
|
||||||
|
.expectPullRequestWait(200);
|
||||||
|
|
||||||
// Simulate that the fork branch name is available.
|
// Simulate that the fork branch name is available.
|
||||||
fork.expectBranchRequest(forkBranchName, null);
|
fork.expectBranchRequest(forkBranchName, null);
|
||||||
|
@ -138,7 +140,8 @@ describe('common release action logic', () => {
|
||||||
// it is properly appended. Also expect a pull request to be created in the fork.
|
// it is properly appended. Also expect a pull request to be created in the fork.
|
||||||
repo.expectChangelogFetch(branchName, `non analyzable changelog`)
|
repo.expectChangelogFetch(branchName, `non analyzable changelog`)
|
||||||
.expectFindForkRequest(fork)
|
.expectFindForkRequest(fork)
|
||||||
.expectPullRequestToBeCreated('master', fork, forkBranchName, 200);
|
.expectPullRequestToBeCreated('master', fork, forkBranchName, 200)
|
||||||
|
.expectPullRequestWait(200);
|
||||||
|
|
||||||
// Simulate that the fork branch name is available.
|
// Simulate that the fork branch name is available.
|
||||||
fork.expectBranchRequest(forkBranchName, null);
|
fork.expectBranchRequest(forkBranchName, null);
|
||||||
|
@ -166,7 +169,8 @@ describe('common release action logic', () => {
|
||||||
// it is properly appended. Also expect a pull request to be created in the fork.
|
// it is properly appended. Also expect a pull request to be created in the fork.
|
||||||
repo.expectChangelogFetch(branchName, fakeReleaseNotes)
|
repo.expectChangelogFetch(branchName, fakeReleaseNotes)
|
||||||
.expectFindForkRequest(fork)
|
.expectFindForkRequest(fork)
|
||||||
.expectPullRequestToBeCreated('master', fork, forkBranchName, 200);
|
.expectPullRequestToBeCreated('master', fork, forkBranchName, 200)
|
||||||
|
.expectPullRequestWait(200);
|
||||||
|
|
||||||
// Simulate that the fork branch name is available.
|
// Simulate that the fork branch name is available.
|
||||||
fork.expectBranchRequest(forkBranchName, null);
|
fork.expectBranchRequest(forkBranchName, null);
|
||||||
|
|
|
@ -194,7 +194,8 @@ export async function expectStagingAndPublishWithCherryPick(
|
||||||
.expectTagToBeCreated(expectedTagName, 'STAGING_COMMIT_SHA')
|
.expectTagToBeCreated(expectedTagName, 'STAGING_COMMIT_SHA')
|
||||||
.expectReleaseToBeCreated(`v${expectedVersion}`, expectedTagName)
|
.expectReleaseToBeCreated(`v${expectedVersion}`, expectedTagName)
|
||||||
.expectChangelogFetch(expectedBranch, getChangelogForVersion(expectedVersion))
|
.expectChangelogFetch(expectedBranch, getChangelogForVersion(expectedVersion))
|
||||||
.expectPullRequestToBeCreated('master', fork, expectedCherryPickForkBranch, 300);
|
.expectPullRequestToBeCreated('master', fork, expectedCherryPickForkBranch, 300)
|
||||||
|
.expectPullRequestWait(300);
|
||||||
|
|
||||||
// In the fork, we make the staging and cherry-pick branches appear as
|
// In the fork, we make the staging and cherry-pick branches appear as
|
||||||
// non-existent, so that the PRs can be created properly without collisions.
|
// non-existent, so that the PRs can be created properly without collisions.
|
||||||
|
|
Loading…
Reference in New Issue