diff --git a/lib/config/definitions.js b/lib/config/definitions.js index 838f47a157304ca1c10b294d1dbf6e77a7a27716..2ec3dbb7e465d4877684c611762d2b069ef7cf29 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 d9c77c2ba6556ac7e59924c1f276f14459981c18..ed7ae9fb5ea4bfdd6f173747074fbedd4b6c1990 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 a2eeefe5b1f433e8a2324ebd06a3bb0a7eefae26..91e50b10cef62e640acd01c7c1c0749aa747ad2e 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 47aa49054c5519dc77b268698b9a6e077587c24e..75d7569ba37b36eaf70b32772a070c6709fb8a37 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 a5f303ab7a484cd1fd5baf948e1d54f461d5f653..8e8779633e484f60d224640fade716c58e96a316 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 75e547b3e95e82ee0a49b0aeeb8c5d9d47c8b332..5549e42b60034aa403b42b687243eac9ce402789 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 ba990736aa961c76bf69da511af5ef6948b8a0b2..4d3c3f686c334fbc88593bec7f10afdfed2e5b56 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 ee7ce645a7c1da6632012af8f0207d51707bfecc..3f96ad6da4523c29fc600d07f67e8f3d4339e71c 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 2fab76e736b7f746463fe3e0703eb8ea9c50c0a4..e4c22b5fa5608c94a3c87e1e4adb5fdb6b98ba7f 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 de3f74481d586c21bd25dacd463dedc119852b9b..8e9dd8c5b3e1d13e9d925566d1a7306338b43d18 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 40226fd05bc1e31478e839ed9ee6d918576ba4f4..48340cf14756cb57dc7c279d5c3f35c36903ff65 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 4ff90fb7c515000382c2fe8a38213fd96b17e332..b24c7654c3a3f02731094658b13d0d813cd250c2 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 6e67b20a617ef8fdcfbe0e1eff10b1a61426d0e3..b427a93477d7eb9347ed9924d0080a22d8db6ae4 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 dbc6dd67a3f805d2455704e16745ecd1329602da..707924ce03ba008092db0d7e662eb40cef79d11f 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 781c8c969c96baca444ddbada28197553e75b789..dbd3b7a02250db153459aa96c92375e61b1bf126 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 356878a107e1726ebd8358faacf2d67323dab6ee..dd8883cb0571a2ee29dab0fd8951a09679513931 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 e5ba3ea8be1818f5f934fa2b759b7b37f3ec78f9..3b227cc29f420fa5b2137e146f1b2359e7d1c891 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 0e0bc1d076e31f4b25e739fd46e2e0240be9201c..8739e891eb222f8412891fd725104f77140e6150 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.