mirror of
https://github.com/renovatebot/renovate.git
synced 2026-10-31 01:37:24 +00:00
fix: do nothing if new commit and check required (#5594)
This commit is contained in:
@@ -439,8 +439,17 @@ export async function processBranch(
|
||||
await setStability(config);
|
||||
await setUnpublishable(config);
|
||||
|
||||
// break if we pushed a new commit because status check are pretty sure pending but maybe not reported yet
|
||||
if (
|
||||
commit &&
|
||||
(config.requiredStatusChecks?.length || config.prCreation !== 'immediate')
|
||||
) {
|
||||
logger.debug({ commit }, `Branch status pending`);
|
||||
return 'pending';
|
||||
}
|
||||
|
||||
// Try to automerge branch and finish if successful, but only if branch already existed before this run
|
||||
if (branchExists || !config.requiresStatusChecks) {
|
||||
if (branchExists || !config.requiredStatusChecks) {
|
||||
const mergeStatus = await tryBranchAutomerge(config);
|
||||
logger.debug(`mergeStatus=${mergeStatus}`);
|
||||
if (mergeStatus === 'automerged') {
|
||||
|
||||
@@ -233,12 +233,33 @@ describe('workers/branch', () => {
|
||||
updatedArtifacts: [{}],
|
||||
} as never);
|
||||
platform.branchExists.mockResolvedValueOnce(true);
|
||||
commit.commitFilesToBranch.mockResolvedValueOnce(null);
|
||||
automerge.tryBranchAutomerge.mockResolvedValueOnce('automerged');
|
||||
await branchWorker.processBranch(config);
|
||||
expect(statusChecks.setUnpublishable).toHaveBeenCalledTimes(1);
|
||||
expect(automerge.tryBranchAutomerge).toHaveBeenCalledTimes(1);
|
||||
expect(prWorker.ensurePr).toHaveBeenCalledTimes(0);
|
||||
});
|
||||
|
||||
it('returns if branch automerged and no checks', async () => {
|
||||
getUpdated.getUpdatedPackageFiles.mockReturnValueOnce({
|
||||
updatedPackageFiles: [{}],
|
||||
} as never);
|
||||
npmPostExtract.getAdditionalFiles.mockReturnValueOnce({
|
||||
artifactErrors: [],
|
||||
updatedArtifacts: [{}],
|
||||
} as never);
|
||||
platform.branchExists.mockResolvedValueOnce(false);
|
||||
automerge.tryBranchAutomerge.mockResolvedValueOnce('automerged');
|
||||
await branchWorker.processBranch({
|
||||
...config,
|
||||
requiredStatusChecks: null,
|
||||
});
|
||||
expect(statusChecks.setUnpublishable).toHaveBeenCalledTimes(1);
|
||||
expect(automerge.tryBranchAutomerge).toHaveBeenCalledTimes(1);
|
||||
expect(prWorker.ensurePr).toHaveBeenCalledTimes(0);
|
||||
});
|
||||
|
||||
it('returns if branch automerged (dry-run)', async () => {
|
||||
getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce({
|
||||
updatedPackageFiles: [{}],
|
||||
@@ -248,6 +269,7 @@ describe('workers/branch', () => {
|
||||
updatedArtifacts: [{}],
|
||||
} as never);
|
||||
platform.branchExists.mockResolvedValueOnce(true);
|
||||
commit.commitFilesToBranch.mockResolvedValueOnce(null);
|
||||
automerge.tryBranchAutomerge.mockResolvedValueOnce('automerged');
|
||||
await branchWorker.processBranch({ ...config, dryRun: true });
|
||||
expect(statusChecks.setUnpublishable).toHaveBeenCalledTimes(1);
|
||||
@@ -263,6 +285,7 @@ describe('workers/branch', () => {
|
||||
updatedArtifacts: [{}],
|
||||
} as never);
|
||||
platform.branchExists.mockResolvedValueOnce(true);
|
||||
commit.commitFilesToBranch.mockResolvedValueOnce(null);
|
||||
automerge.tryBranchAutomerge.mockResolvedValueOnce('failed');
|
||||
prWorker.ensurePr.mockResolvedValueOnce('needs-pr-approval');
|
||||
expect(await branchWorker.processBranch(config)).toEqual(
|
||||
@@ -270,6 +293,7 @@ describe('workers/branch', () => {
|
||||
);
|
||||
});
|
||||
it('returns if branch exists but pending', async () => {
|
||||
expect.assertions(1);
|
||||
getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce({
|
||||
updatedPackageFiles: [{}],
|
||||
} as never);
|
||||
@@ -278,12 +302,33 @@ describe('workers/branch', () => {
|
||||
updatedArtifacts: [{}],
|
||||
} as never);
|
||||
platform.branchExists.mockResolvedValueOnce(true);
|
||||
commit.commitFilesToBranch.mockResolvedValueOnce(null);
|
||||
automerge.tryBranchAutomerge.mockResolvedValueOnce('failed');
|
||||
prWorker.ensurePr.mockResolvedValueOnce('pending');
|
||||
expect(await branchWorker.processBranch(config)).toEqual(
|
||||
BRANCH_STATUS_PENDING
|
||||
);
|
||||
});
|
||||
it('returns if branch exists but updated', async () => {
|
||||
expect.assertions(3);
|
||||
getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce({
|
||||
updatedPackageFiles: [{}],
|
||||
} as never);
|
||||
npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({
|
||||
artifactErrors: [],
|
||||
updatedArtifacts: [{}],
|
||||
} as never);
|
||||
expect(
|
||||
await branchWorker.processBranch({
|
||||
...config,
|
||||
requiredStatusChecks: null,
|
||||
prCreation: 'not-pending',
|
||||
})
|
||||
).toEqual(BRANCH_STATUS_PENDING);
|
||||
|
||||
expect(automerge.tryBranchAutomerge).toHaveBeenCalledTimes(0);
|
||||
expect(prWorker.ensurePr).toHaveBeenCalledTimes(0);
|
||||
});
|
||||
it('ensures PR and tries automerge', async () => {
|
||||
getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce({
|
||||
updatedPackageFiles: [{}],
|
||||
@@ -296,6 +341,7 @@ describe('workers/branch', () => {
|
||||
automerge.tryBranchAutomerge.mockResolvedValueOnce('failed');
|
||||
prWorker.ensurePr.mockResolvedValueOnce({} as never);
|
||||
prWorker.checkAutoMerge.mockResolvedValueOnce(true);
|
||||
commit.commitFilesToBranch.mockResolvedValueOnce(null);
|
||||
await branchWorker.processBranch(config);
|
||||
expect(prWorker.ensurePr).toHaveBeenCalledTimes(1);
|
||||
expect(platform.ensureCommentRemoval).toHaveBeenCalledTimes(1);
|
||||
@@ -313,6 +359,7 @@ describe('workers/branch', () => {
|
||||
automerge.tryBranchAutomerge.mockResolvedValueOnce('failed');
|
||||
prWorker.ensurePr.mockResolvedValueOnce({} as never);
|
||||
prWorker.checkAutoMerge.mockResolvedValueOnce(true);
|
||||
commit.commitFilesToBranch.mockResolvedValueOnce(null);
|
||||
await branchWorker.processBranch(config);
|
||||
expect(platform.ensureComment).toHaveBeenCalledTimes(1);
|
||||
// expect(platform.ensureCommentRemoval.mock.calls).toHaveLength(0);
|
||||
@@ -332,6 +379,7 @@ describe('workers/branch', () => {
|
||||
prWorker.ensurePr.mockResolvedValueOnce({} as never);
|
||||
prWorker.checkAutoMerge.mockResolvedValueOnce(true);
|
||||
config.releaseTimestamp = '2018-04-26T05:15:51.877Z';
|
||||
commit.commitFilesToBranch.mockResolvedValueOnce(null);
|
||||
await branchWorker.processBranch(config);
|
||||
expect(platform.ensureComment).toHaveBeenCalledTimes(1);
|
||||
// expect(platform.ensureCommentRemoval.mock.calls).toHaveLength(0);
|
||||
@@ -351,6 +399,7 @@ describe('workers/branch', () => {
|
||||
prWorker.ensurePr.mockResolvedValueOnce({} as never);
|
||||
prWorker.checkAutoMerge.mockResolvedValueOnce(true);
|
||||
config.releaseTimestamp = new Date().toISOString();
|
||||
commit.commitFilesToBranch.mockResolvedValueOnce(null);
|
||||
await branchWorker.processBranch(config);
|
||||
expect(platform.ensureComment).toHaveBeenCalledTimes(1);
|
||||
// expect(platform.ensureCommentRemoval.mock.calls).toHaveLength(0);
|
||||
@@ -387,6 +436,7 @@ describe('workers/branch', () => {
|
||||
automerge.tryBranchAutomerge.mockResolvedValueOnce('failed');
|
||||
prWorker.ensurePr.mockResolvedValueOnce({} as never);
|
||||
prWorker.checkAutoMerge.mockResolvedValueOnce(true);
|
||||
commit.commitFilesToBranch.mockResolvedValueOnce(null);
|
||||
await branchWorker.processBranch(config);
|
||||
expect(platform.ensureComment).toHaveBeenCalledTimes(1);
|
||||
// expect(platform.ensureCommentRemoval.mock.calls).toHaveLength(0);
|
||||
@@ -494,6 +544,7 @@ describe('workers/branch', () => {
|
||||
|
||||
schedule.isScheduledNow.mockReturnValueOnce(false);
|
||||
prWorker.ensurePr.mockResolvedValueOnce({} as never);
|
||||
commit.commitFilesToBranch.mockResolvedValueOnce(null);
|
||||
expect(
|
||||
await branchWorker.processBranch({
|
||||
...config,
|
||||
|
||||
Reference in New Issue
Block a user