Skip to content
Snippets Groups Projects
Commit c6be3154 authored by Rhys Arkins's avatar Rhys Arkins
Browse files

refactor: improve migration scripts

parent a2c4ecef
No related branches found
No related tags found
No related merge requests found
......@@ -52,7 +52,7 @@ function migrateConfig(config) {
if (val[i] === 'config:application' || val[i] === ':js-app') {
isMigrated = true;
migratedConfig.extends[i] = 'config:js-app';
} else if (val[i] === 'config:library') {
} else if (val[i] === ':library' || val[i] === 'config:library') {
isMigrated = true;
migratedConfig.extends[i] = 'config:js-lib';
}
......@@ -81,24 +81,17 @@ function migrateConfig(config) {
typeof val === 'string' &&
['none', 'patch', 'minor', 'any'].indexOf(val) !== -1
) {
delete migratedConfig.automerge;
isMigrated = true;
delete migratedConfig.automerge;
migratedConfig.extends = migratedConfig.extends || [];
if (val === 'none') {
migratedConfig.automerge = false;
migratedConfig.extends.push(':automergeDisabled');
} else if (val === 'patch') {
migratedConfig.patch = migratedConfig.patch || {};
migratedConfig.patch.automerge = true;
migratedConfig.minor = migratedConfig.minor || {};
migratedConfig.minor.automerge = false;
migratedConfig.major = migratedConfig.major || {};
migratedConfig.major.automerge = false;
migratedConfig.extends.push(':automergePatch');
} else if (val === 'minor') {
migratedConfig.minor = migratedConfig.minor || {};
migratedConfig.minor.automerge = true;
migratedConfig.major = migratedConfig.major || {};
migratedConfig.major.automerge = false;
migratedConfig.extends.push(':automergeMinor');
} else if (val === 'any') {
migratedConfig.automerge = true;
migratedConfig.extends.push(':automergeAll');
}
} else if (key === 'packages') {
isMigrated = true;
......
......@@ -22,8 +22,10 @@ Object {
exports[`config/migrate-validate migrateAndValidate() handles migration 1`] = `
Object {
"automerge": false,
"errors": Array [],
"extends": Array [
":automergeDisabled",
],
"warnings": Array [],
}
`;
......@@ -9,30 +9,29 @@ Object {
exports[`config/migration migrateConfig(config, parentConfig) it migrates config 1`] = `
Object {
"autodiscover": true,
"automerge": false,
"baseBranches": Array [
"next",
],
"commitMessage": "some commit message",
"devDependencies": Object {
"major": Object {
"automerge": false,
},
"minor": Object {
"automerge": true,
},
"extends": Array [
":automergeMinor",
],
"schedule": Array [],
},
"enabled": true,
"extends": Array [
"config:js-app",
"config:js-lib",
":automergeDisabled",
],
"ignorePaths": Array [
"node_modules/",
],
"lockFileMaintenance": Object {
"automerge": true,
"extends": Array [
":automergeAll",
],
"schedule": "before 5am",
},
"major": Object {
......@@ -46,12 +45,9 @@ Object {
},
"onboarding": false,
"optionalDependencies": Object {
"major": Object {
"automerge": false,
},
"minor": Object {
"automerge": true,
},
"extends": Array [
":automergeMinor",
],
"respectLatest": false,
"schedule": "before 5am on Monday",
},
......@@ -93,7 +89,9 @@ Object {
exports[`config/migration migrateConfig(config, parentConfig) it migrates node to travis 1`] = `
Object {
"node": Object {
"automerge": false,
"extends": Array [
":automergeDisabled",
],
"supportPolicy": Array [
"lts",
],
......@@ -127,24 +125,15 @@ Object {
exports[`config/migration migrateConfig(config, parentConfig) it overrides existing automerge setting 1`] = `
Object {
"major": Object {
"automerge": false,
},
"minor": Object {
"automerge": true,
},
"extends": Array [
":automergeMinor",
],
"packageRules": Array [
Object {
"major": Object {
"automerge": false,
},
"minor": Object {
"automerge": false,
},
"extends": Array [
":automergePatch",
],
"packagePatterns": "^(@angular|typescript)",
"patch": Object {
"automerge": true,
},
},
],
}
......
......@@ -259,6 +259,7 @@ Object {
"Use <code>renovate/</code> as prefix for all branch names",
"If semantic commits detected, use <code>fix(deps):</code> for dependencies and <code>chore(deps):</code> for all others",
"Require all status checks to pass before any automerging",
"Automerge patch or minor upgrades if they pass tests",
"Pin dependency versions for <code>devDependencies</code> and retain semver ranges for others",
],
"devDependencies": Object {
......@@ -280,9 +281,6 @@ Object {
"before 8am on Monday",
],
},
"major": Object {
"automerge": false,
},
"minor": Object {
"automerge": true,
},
......
......@@ -66,7 +66,6 @@ describe('config/migration', () => {
expect(isMigrated).toBe(true);
expect(migratedConfig.depTypes).not.toBeDefined();
expect(migratedConfig.optionalDependencies.respectLatest).toBe(false);
expect(migratedConfig.automerge).toEqual(false);
expect(migratedConfig).toMatchSnapshot();
});
it('migrates before and after schedules', () => {
......@@ -192,7 +191,6 @@ describe('config/migration', () => {
);
expect(isMigrated).toBe(true);
expect(migratedConfig).toMatchSnapshot();
expect(migratedConfig.packageRules[0].minor.automerge).toBe(false);
});
it('it does not migrate config', () => {
const config = {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment