From a0e2a18e7a78ed919362f28f51d46e8b667506eb Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Sat, 21 Jul 2018 19:40:50 +0200 Subject: [PATCH] refactor(docker): rename docker manager to dockerfile (#2298) "docker" in config now refers to the Docker "language", which is the parent of dockerfile, docker-compose and circleci managers. --- lib/config/definitions.js | 14 ++++++-- lib/manager/circleci/extract.js | 2 +- lib/manager/circleci/update.js | 2 +- lib/manager/docker-compose/extract.js | 2 +- lib/manager/docker-compose/update.js | 2 +- lib/manager/{docker => dockerfile}/extract.js | 0 lib/manager/{docker => dockerfile}/index.js | 3 ++ lib/manager/{docker => dockerfile}/update.js | 0 lib/manager/index.js | 2 +- .../onboarding/pr/config-description.js | 4 ++- .../__snapshots__/extract.spec.js.snap | 32 +++++++++---------- .../__snapshots__/update.spec.js.snap | 8 ++--- .../{docker => dockerfile}/extract.spec.js | 6 ++-- .../{docker => dockerfile}/update.spec.js | 4 +-- test/manager/index.spec.js | 4 +-- .../extract/__snapshots__/index.spec.js.snap | 4 +-- .../onboarding/pr/config-description.spec.js | 2 +- .../__snapshots__/flatten.spec.js.snap | 2 +- .../repository/updates/flatten.spec.js | 2 +- website/docs/configuration-options.md | 2 ++ 20 files changed, 58 insertions(+), 39 deletions(-) rename lib/manager/{docker => dockerfile}/extract.js (100%) rename lib/manager/{docker => dockerfile}/index.js (80%) rename lib/manager/{docker => dockerfile}/update.js (100%) rename test/manager/{docker => dockerfile}/__snapshots__/extract.spec.js.snap (86%) rename test/manager/{docker => dockerfile}/__snapshots__/update.spec.js.snap (55%) rename test/manager/{docker => dockerfile}/extract.spec.js (96%) rename test/manager/{docker => dockerfile}/update.spec.js (96%) diff --git a/lib/config/definitions.js b/lib/config/definitions.js index 838f47a157..2ec3dbb7e4 100644 --- a/lib/config/definitions.js +++ b/lib/config/definitions.js @@ -946,11 +946,10 @@ const options = [ }, { name: 'docker', - description: 'Configuration object for Dockerfile renovation', + description: 'Configuration object for Docker language', stage: 'package', type: 'json', default: { - fileMatch: ['(^|/)Dockerfile$'], managerBranchPrefix: 'docker-', commitMessageTopic: '{{{depName}}} Docker tag', prBody: template('prBody', 'docker'), @@ -995,6 +994,17 @@ const options = [ mergeable: true, cli: false, }, + { + name: 'dockerfile', + description: 'Configuration object for Dockerfile renovation', + stage: 'package', + type: 'json', + default: { + fileMatch: ['(^|/)Dockerfile$'], + }, + mergeable: true, + cli: false, + }, { name: 'circleci', description: diff --git a/lib/manager/circleci/extract.js b/lib/manager/circleci/extract.js index d9c77c2ba6..ed7ae9fb5e 100644 --- a/lib/manager/circleci/extract.js +++ b/lib/manager/circleci/extract.js @@ -1,4 +1,4 @@ -const { getDep } = require('../docker/extract'); +const { getDep } = require('../dockerfile/extract'); module.exports = { extractDependencies, diff --git a/lib/manager/circleci/update.js b/lib/manager/circleci/update.js index a2eeefe5b1..91e50b10ce 100644 --- a/lib/manager/circleci/update.js +++ b/lib/manager/circleci/update.js @@ -1,4 +1,4 @@ -const { getNewFrom } = require('../docker/update'); +const { getNewFrom } = require('../dockerfile/update'); module.exports = { updateDependency, diff --git a/lib/manager/docker-compose/extract.js b/lib/manager/docker-compose/extract.js index 47aa49054c..75d7569ba3 100644 --- a/lib/manager/docker-compose/extract.js +++ b/lib/manager/docker-compose/extract.js @@ -1,4 +1,4 @@ -const { getDep } = require('../docker/extract'); +const { getDep } = require('../dockerfile/extract'); module.exports = { extractDependencies, diff --git a/lib/manager/docker-compose/update.js b/lib/manager/docker-compose/update.js index a5f303ab7a..8e8779633e 100644 --- a/lib/manager/docker-compose/update.js +++ b/lib/manager/docker-compose/update.js @@ -1,4 +1,4 @@ -const { getNewFrom } = require('../docker/update'); +const { getNewFrom } = require('../dockerfile/update'); module.exports = { updateDependency, diff --git a/lib/manager/docker/extract.js b/lib/manager/dockerfile/extract.js similarity index 100% rename from lib/manager/docker/extract.js rename to lib/manager/dockerfile/extract.js diff --git a/lib/manager/docker/index.js b/lib/manager/dockerfile/index.js similarity index 80% rename from lib/manager/docker/index.js rename to lib/manager/dockerfile/index.js index 75e547b3e9..5549e42b60 100644 --- a/lib/manager/docker/index.js +++ b/lib/manager/dockerfile/index.js @@ -1,7 +1,10 @@ const { extractDependencies } = require('./extract'); const { updateDependency } = require('./update'); +const language = 'docker'; + module.exports = { extractDependencies, + language, updateDependency, }; diff --git a/lib/manager/docker/update.js b/lib/manager/dockerfile/update.js similarity index 100% rename from lib/manager/docker/update.js rename to lib/manager/dockerfile/update.js diff --git a/lib/manager/index.js b/lib/manager/index.js index ba990736aa..4d3c3f686c 100644 --- a/lib/manager/index.js +++ b/lib/manager/index.js @@ -3,8 +3,8 @@ const managerList = [ 'buildkite', 'circleci', 'composer', - 'docker', 'docker-compose', + 'dockerfile', 'meteor', 'npm', 'nvm', diff --git a/lib/workers/repository/onboarding/pr/config-description.js b/lib/workers/repository/onboarding/pr/config-description.js index ee7ce645a7..3f96ad6da4 100644 --- a/lib/workers/repository/onboarding/pr/config-description.js +++ b/lib/workers/repository/onboarding/pr/config-description.js @@ -25,7 +25,9 @@ function getConfigDesc(config, packageFiles) { } logger.debug({ length: descriptionArr.length }, 'Found description array'); const managers = packageFiles ? Object.keys(packageFiles) : []; - if (!(managers.includes('docker') || managers.includes('docker-compose'))) { + if ( + !(managers.includes('dockerfile') || managers.includes('docker-compose')) + ) { descriptionArr = descriptionArr.filter(val => !val.includes('Docker-only')); } let desc = `\n## Configuration Summary\n\nBased on the currently configured presets, Renovate will:\n\n`; diff --git a/test/manager/docker/__snapshots__/extract.spec.js.snap b/test/manager/dockerfile/__snapshots__/extract.spec.js.snap similarity index 86% rename from test/manager/docker/__snapshots__/extract.spec.js.snap rename to test/manager/dockerfile/__snapshots__/extract.spec.js.snap index 2fab76e736..e4c22b5fa5 100644 --- a/test/manager/docker/__snapshots__/extract.spec.js.snap +++ b/test/manager/dockerfile/__snapshots__/extract.spec.js.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`lib/manager/docker/extract extractDependencies() extracts images on adjacent lines 1`] = ` +exports[`lib/manager/dockerfile/extract extractDependencies() extracts images on adjacent lines 1`] = ` Array [ Object { "commitMessageTopic": "Node.js", @@ -38,7 +38,7 @@ Array [ ] `; -exports[`lib/manager/docker/extract extractDependencies() extracts multiple FROM tags 1`] = ` +exports[`lib/manager/dockerfile/extract extractDependencies() extracts multiple FROM tags 1`] = ` Array [ Object { "commitMessageTopic": "Node.js", @@ -76,7 +76,7 @@ Array [ ] `; -exports[`lib/manager/docker/extract extractDependencies() handles abnoral spacing 1`] = ` +exports[`lib/manager/dockerfile/extract extractDependencies() handles abnoral spacing 1`] = ` Array [ Object { "commitMessageTopic": "Node.js", @@ -98,7 +98,7 @@ Array [ ] `; -exports[`lib/manager/docker/extract extractDependencies() handles comments 1`] = ` +exports[`lib/manager/dockerfile/extract extractDependencies() handles comments 1`] = ` Array [ Object { "commitMessageTopic": "Node.js", @@ -120,7 +120,7 @@ Array [ ] `; -exports[`lib/manager/docker/extract extractDependencies() handles custom hosts 1`] = ` +exports[`lib/manager/dockerfile/extract extractDependencies() handles custom hosts 1`] = ` Array [ Object { "commitMessageTopic": "Node.js", @@ -142,7 +142,7 @@ Array [ ] `; -exports[`lib/manager/docker/extract extractDependencies() handles custom hosts and suffix 1`] = ` +exports[`lib/manager/dockerfile/extract extractDependencies() handles custom hosts and suffix 1`] = ` Array [ Object { "commitMessageTopic": "Node.js", @@ -164,7 +164,7 @@ Array [ ] `; -exports[`lib/manager/docker/extract extractDependencies() handles custom hosts with namespace 1`] = ` +exports[`lib/manager/dockerfile/extract extractDependencies() handles custom hosts with namespace 1`] = ` Array [ Object { "commitMessageTopic": "Node.js", @@ -186,7 +186,7 @@ Array [ ] `; -exports[`lib/manager/docker/extract extractDependencies() handles custom hosts with port 1`] = ` +exports[`lib/manager/dockerfile/extract extractDependencies() handles custom hosts with port 1`] = ` Array [ Object { "commitMessageTopic": "Node.js", @@ -208,7 +208,7 @@ Array [ ] `; -exports[`lib/manager/docker/extract extractDependencies() handles digest 1`] = ` +exports[`lib/manager/dockerfile/extract extractDependencies() handles digest 1`] = ` Array [ Object { "commitMessageTopic": "Node.js", @@ -230,7 +230,7 @@ Array [ ] `; -exports[`lib/manager/docker/extract extractDependencies() handles from as 1`] = ` +exports[`lib/manager/dockerfile/extract extractDependencies() handles from as 1`] = ` Array [ Object { "commitMessageTopic": "Node.js", @@ -252,7 +252,7 @@ Array [ ] `; -exports[`lib/manager/docker/extract extractDependencies() handles naked dep 1`] = ` +exports[`lib/manager/dockerfile/extract extractDependencies() handles naked dep 1`] = ` Array [ Object { "commitMessageTopic": "Node.js", @@ -274,7 +274,7 @@ Array [ ] `; -exports[`lib/manager/docker/extract extractDependencies() handles namespaced images 1`] = ` +exports[`lib/manager/dockerfile/extract extractDependencies() handles namespaced images 1`] = ` Array [ Object { "commitMessageTopic": "Node.js", @@ -296,7 +296,7 @@ Array [ ] `; -exports[`lib/manager/docker/extract extractDependencies() handles tag 1`] = ` +exports[`lib/manager/dockerfile/extract extractDependencies() handles tag 1`] = ` Array [ Object { "commitMessageTopic": "Node.js", @@ -318,7 +318,7 @@ Array [ ] `; -exports[`lib/manager/docker/extract extractDependencies() handles tag and digest 1`] = ` +exports[`lib/manager/dockerfile/extract extractDependencies() handles tag and digest 1`] = ` Array [ Object { "commitMessageTopic": "Node.js", @@ -340,7 +340,7 @@ Array [ ] `; -exports[`lib/manager/docker/extract extractDependencies() is case insensitive 1`] = ` +exports[`lib/manager/dockerfile/extract extractDependencies() is case insensitive 1`] = ` Array [ Object { "commitMessageTopic": "Node.js", @@ -362,7 +362,7 @@ Array [ ] `; -exports[`lib/manager/docker/extract extractDependencies() skips named multistage FROM tags 1`] = ` +exports[`lib/manager/dockerfile/extract extractDependencies() skips named multistage FROM tags 1`] = ` Array [ Object { "commitMessageTopic": "Node.js", diff --git a/test/manager/docker/__snapshots__/update.spec.js.snap b/test/manager/dockerfile/__snapshots__/update.spec.js.snap similarity index 55% rename from test/manager/docker/__snapshots__/update.spec.js.snap rename to test/manager/dockerfile/__snapshots__/update.spec.js.snap index de3f74481d..8e9dd8c5b3 100644 --- a/test/manager/docker/__snapshots__/update.spec.js.snap +++ b/test/manager/dockerfile/__snapshots__/update.spec.js.snap @@ -1,27 +1,27 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`manager/docker/update updateDependency handles similar FROM 1`] = ` +exports[`manager/dockerfile/update updateDependency handles similar FROM 1`] = ` "FROM debian:wheezy@sha256:abcdefghijklmnop as stage-1 RUN something FROM debian:wheezy@sha256:abcdefghijklmnop RUN something else" `; -exports[`manager/docker/update updateDependency handles strange whitespace 1`] = ` +exports[`manager/dockerfile/update updateDependency handles strange whitespace 1`] = ` "# comment FROM node:8 FROM node:8@sha256:abcdefghijklmnop as base RUN something " `; -exports[`manager/docker/update updateDependency replaces existing value 1`] = ` +exports[`manager/dockerfile/update updateDependency replaces existing value 1`] = ` "# comment FROM node:8 FROM node:8-alpine@sha256:abcdefghijklmnop RUN something " `; -exports[`manager/docker/update updateDependency replaces existing value with suffix 1`] = ` +exports[`manager/dockerfile/update updateDependency replaces existing value with suffix 1`] = ` "# comment FROM node:8 FROM node:8@sha256:abcdefghijklmnop as base RUN something diff --git a/test/manager/docker/extract.spec.js b/test/manager/dockerfile/extract.spec.js similarity index 96% rename from test/manager/docker/extract.spec.js rename to test/manager/dockerfile/extract.spec.js index 40226fd05b..48340cf147 100644 --- a/test/manager/docker/extract.spec.js +++ b/test/manager/dockerfile/extract.spec.js @@ -1,9 +1,11 @@ const fs = require('fs'); -const { extractDependencies } = require('../../../lib/manager/docker/extract'); +const { + extractDependencies, +} = require('../../../lib/manager/dockerfile/extract'); const d1 = fs.readFileSync('test/_fixtures/docker/Dockerfile1', 'utf8'); -describe('lib/manager/docker/extract', () => { +describe('lib/manager/dockerfile/extract', () => { describe('extractDependencies()', () => { let config; beforeEach(() => { diff --git a/test/manager/docker/update.spec.js b/test/manager/dockerfile/update.spec.js similarity index 96% rename from test/manager/docker/update.spec.js rename to test/manager/dockerfile/update.spec.js index 4ff90fb7c5..b24c7654c3 100644 --- a/test/manager/docker/update.spec.js +++ b/test/manager/dockerfile/update.spec.js @@ -1,6 +1,6 @@ -const dockerfile = require('../../../lib/manager/docker/update'); +const dockerfile = require('../../../lib/manager/dockerfile/update'); -describe('manager/docker/update', () => { +describe('manager/dockerfile/update', () => { describe('updateDependency', () => { it('replaces existing value', () => { const fileContent = '# comment FROM node:8\nFROM node:8\nRUN something\n'; diff --git a/test/manager/index.spec.js b/test/manager/index.spec.js index 6e67b20a61..b427a93477 100644 --- a/test/manager/index.spec.js +++ b/test/manager/index.spec.js @@ -3,7 +3,7 @@ const manager = require('../../lib/manager'); describe('manager', () => { describe('get()', () => { it('gets something', () => { - expect(manager.get('docker', 'extractDependencies')).not.toBe(null); + expect(manager.get('dockerfile', 'extractDependencies')).not.toBe(null); }); }); describe('getLanguageList()', () => { @@ -18,7 +18,7 @@ describe('manager', () => { }); describe('postExtract()', () => { it('returns null', () => { - expect(manager.postExtract('docker', [])).toBe(null); + expect(manager.postExtract('dockerfile', [])).toBe(null); }); it('returns postExtract', () => { expect(manager.postExtract('npm', [])).not.toBe(null); diff --git a/test/workers/repository/extract/__snapshots__/index.spec.js.snap b/test/workers/repository/extract/__snapshots__/index.spec.js.snap index dbc6dd67a3..707924ce03 100644 --- a/test/workers/repository/extract/__snapshots__/index.spec.js.snap +++ b/test/workers/repository/extract/__snapshots__/index.spec.js.snap @@ -14,10 +14,10 @@ Object { "composer": Array [ Object {}, ], - "docker": Array [ + "docker-compose": Array [ Object {}, ], - "docker-compose": Array [ + "dockerfile": Array [ Object {}, ], "meteor": Array [ diff --git a/test/workers/repository/onboarding/pr/config-description.spec.js b/test/workers/repository/onboarding/pr/config-description.spec.js index 781c8c969c..dbd3b7a022 100644 --- a/test/workers/repository/onboarding/pr/config-description.spec.js +++ b/test/workers/repository/onboarding/pr/config-description.spec.js @@ -21,7 +21,7 @@ describe('workers/repository/onboarding/pr/config-description', () => { it('returns a full list', () => { const packageFiles = { npm: [], - docker: [], + dockerfile: [], }; config.description = [ 'description 1', diff --git a/test/workers/repository/updates/__snapshots__/flatten.spec.js.snap b/test/workers/repository/updates/__snapshots__/flatten.spec.js.snap index 356878a107..dd8883cb05 100644 --- a/test/workers/repository/updates/__snapshots__/flatten.spec.js.snap +++ b/test/workers/repository/updates/__snapshots__/flatten.spec.js.snap @@ -222,7 +222,7 @@ Array [ "labels": Array [], "language": "docker", "lazyGrouping": true, - "manager": "docker", + "manager": "dockerfile", "managerBranchPrefix": "", "newValue": "10.0.1", "npmToken": null, diff --git a/test/workers/repository/updates/flatten.spec.js b/test/workers/repository/updates/flatten.spec.js index e5ba3ea8be..3b227cc29f 100644 --- a/test/workers/repository/updates/flatten.spec.js +++ b/test/workers/repository/updates/flatten.spec.js @@ -30,7 +30,7 @@ describe('workers/repository/updates/flatten', () => { ], }, ], - docker: [ + dockerfile: [ { packageFile: 'Dockerfile', deps: [ diff --git a/website/docs/configuration-options.md b/website/docs/configuration-options.md index 0e0bc1d076..8739e891eb 100644 --- a/website/docs/configuration-options.md +++ b/website/docs/configuration-options.md @@ -144,6 +144,8 @@ Add to this object if you wish to define rules that apply only to PRs that pin D ## docker-compose +## dockerfile + ## enabled Renovate is enabled for all packages by default, but this setting allows you to disable Renovate for specific packages, dependency types, package files, or even for the whole repository. -- GitLab