diff --git a/lib/manager/circleci/extract.js b/lib/manager/circleci/extract.js index bbf5a6ba522803eecacc7f87ca003da77e50abd9..431027bb7c1142e3e6356a45d523f789b28e4a2e 100644 --- a/lib/manager/circleci/extract.js +++ b/lib/manager/circleci/extract.js @@ -19,6 +19,8 @@ function extractDependencies(content) { currentDigest, currentDepTagDigest, currentDepTag, + currentValue, + currentPlatform, } = splitImageParts(currentFrom); logger.info( { dockerRegistry, depName, currentTag, currentDigest }, @@ -34,6 +36,8 @@ function extractDependencies(content) { currentDigest, depName, currentTag, + currentValue, + currentPlatform, versionScheme: 'docker', }; if (depName === 'node' || depName.endsWith('/node')) { diff --git a/lib/manager/docker-compose/extract.js b/lib/manager/docker-compose/extract.js index 194a8adcf8478eba97d213a0770edfa3d5b019fd..849a43ad0edf171acf32d251ffa6b6286c0e87cc 100644 --- a/lib/manager/docker-compose/extract.js +++ b/lib/manager/docker-compose/extract.js @@ -19,6 +19,8 @@ function extractDependencies(content) { currentDigest, currentDepTagDigest, currentDepTag, + currentValue, + currentPlatform, } = splitImageParts(currentFrom); logger.info( { dockerRegistry, depName, currentTag, currentDigest }, @@ -33,6 +35,8 @@ function extractDependencies(content) { currentDigest, depName, currentTag, + currentValue, + currentPlatform, versionScheme: 'docker', }; if (depName === 'node' || depName.endsWith('/node')) { diff --git a/lib/manager/docker/extract.js b/lib/manager/docker/extract.js index e36073f3bcade4d5393bcca9dc92889bfba3cd8c..9989ef18c2abc86e90cbce989adee39a197910e8 100644 --- a/lib/manager/docker/extract.js +++ b/lib/manager/docker/extract.js @@ -27,6 +27,15 @@ function splitImageParts(currentFrom) { const currentDepTagDigest = split.join('/'); const [currentDepTag, currentDigest] = currentDepTagDigest.split('@'); const [depName, currentTag] = currentDepTag.split(':'); + let currentValue; + let currentPlatform; + if (currentTag) { + [currentValue, ...currentPlatform] = currentTag.split('-'); + currentPlatform = + currentPlatform && currentPlatform.length + ? currentPlatform.join('-') + : undefined; + } return { dockerRegistry, depName, @@ -34,6 +43,8 @@ function splitImageParts(currentFrom) { currentDigest, currentDepTagDigest, currentDepTag, + currentValue, + currentPlatform, }; } @@ -63,6 +74,8 @@ function extractDependencies(content) { currentDigest, currentDepTagDigest, currentDepTag, + currentValue, + currentPlatform, } = splitImageParts(currentFrom); logger.info({ depName, currentTag, currentDigest }, 'Dockerfile FROM'); if (currentFrom === 'scratch') { @@ -82,6 +95,8 @@ function extractDependencies(content) { currentDigest, depName, currentTag, + currentValue, + currentPlatform, versionScheme: 'docker', }; if (depName === 'node' || depName.endsWith('/node')) { diff --git a/test/manager/circleci/__snapshots__/extract.spec.js.snap b/test/manager/circleci/__snapshots__/extract.spec.js.snap index da58667e257b38bb5f64a0841ae3b41f3ca51b57..81f67bd5d8716077a07dbe4c82fe9b3569dc862d 100644 --- a/test/manager/circleci/__snapshots__/extract.spec.js.snap +++ b/test/manager/circleci/__snapshots__/extract.spec.js.snap @@ -8,7 +8,9 @@ Array [ "currentDepTagDigest": "node", "currentDigest": undefined, "currentFrom": "node", + "currentPlatform": undefined, "currentTag": undefined, + "currentValue": undefined, "depName": "node", "dockerRegistry": undefined, "fromVersion": "node", @@ -21,7 +23,9 @@ Array [ "currentDepTagDigest": "node:4", "currentDigest": undefined, "currentFrom": "node:4", + "currentPlatform": undefined, "currentTag": "4", + "currentValue": "4", "depName": "node", "dockerRegistry": undefined, "fromVersion": "node:4", @@ -34,7 +38,9 @@ Array [ "currentDepTagDigest": "node:6", "currentDigest": undefined, "currentFrom": "node:6", + "currentPlatform": undefined, "currentTag": "6", + "currentValue": "6", "depName": "node", "dockerRegistry": undefined, "fromVersion": "node:6", @@ -47,7 +53,9 @@ Array [ "currentDepTagDigest": "node:8.9.0", "currentDigest": undefined, "currentFrom": "node:8.9.0", + "currentPlatform": undefined, "currentTag": "8.9.0", + "currentValue": "8.9.0", "depName": "node", "dockerRegistry": undefined, "fromVersion": "node:8.9.0", diff --git a/test/manager/docker-compose/__snapshots__/extract.spec.js.snap b/test/manager/docker-compose/__snapshots__/extract.spec.js.snap index 2edb4b6264e9525ed554c837f25f5cd54dcdc2eb..944aa21e36fb55f77d26f739524aab5383aa3e31 100644 --- a/test/manager/docker-compose/__snapshots__/extract.spec.js.snap +++ b/test/manager/docker-compose/__snapshots__/extract.spec.js.snap @@ -7,7 +7,9 @@ Array [ "currentDepTagDigest": "something/redis:alpine", "currentDigest": undefined, "currentFrom": "quay.io/something/redis:alpine", + "currentPlatform": undefined, "currentTag": "alpine", + "currentValue": "alpine", "depName": "something/redis", "dockerRegistry": "quay.io", "lineNumber": 4, @@ -19,7 +21,9 @@ Array [ "currentDepTagDigest": "node:10.0.0", "currentDigest": undefined, "currentFrom": "node:10.0.0", + "currentPlatform": undefined, "currentTag": "10.0.0", + "currentValue": "10.0.0", "depName": "node", "dockerRegistry": undefined, "lineNumber": 18, @@ -30,7 +34,9 @@ Array [ "currentDepTagDigest": "postgres:9.4.0", "currentDigest": undefined, "currentFrom": "postgres:9.4.0", + "currentPlatform": undefined, "currentTag": "9.4.0", + "currentValue": "9.4.0", "depName": "postgres", "dockerRegistry": undefined, "lineNumber": 21, @@ -41,7 +47,9 @@ Array [ "currentDepTagDigest": "dockersamples/examplevotingapp_vote:before", "currentDigest": undefined, "currentFrom": "dockersamples/examplevotingapp_vote:before", + "currentPlatform": undefined, "currentTag": "before", + "currentValue": "before", "depName": "dockersamples/examplevotingapp_vote", "dockerRegistry": undefined, "lineNumber": 31, @@ -52,7 +60,9 @@ Array [ "currentDepTagDigest": "dockersamples/examplevotingapp_result:before", "currentDigest": undefined, "currentFrom": "dockersamples/examplevotingapp_result:before", + "currentPlatform": undefined, "currentTag": "before", + "currentValue": "before", "depName": "dockersamples/examplevotingapp_result", "dockerRegistry": undefined, "lineNumber": 46, @@ -63,7 +73,9 @@ Array [ "currentDepTagDigest": "dockersamples/examplevotingapp_worker", "currentDigest": undefined, "currentFrom": "dockersamples/examplevotingapp_worker", + "currentPlatform": undefined, "currentTag": undefined, + "currentValue": undefined, "depName": "dockersamples/examplevotingapp_worker", "dockerRegistry": undefined, "lineNumber": 62, @@ -74,7 +86,9 @@ Array [ "currentDepTagDigest": "dockersamples/visualizer:stable", "currentDigest": undefined, "currentFrom": "dockersamples/visualizer:stable", + "currentPlatform": undefined, "currentTag": "stable", + "currentValue": "stable", "depName": "dockersamples/visualizer", "dockerRegistry": undefined, "lineNumber": 79, diff --git a/test/manager/docker/__snapshots__/extract.spec.js.snap b/test/manager/docker/__snapshots__/extract.spec.js.snap index 4f8c8c799e675639ecd64d1a6c373fb537bf3d63..a3179daff20c7aff5be633baa45e6ea0403f3255 100644 --- a/test/manager/docker/__snapshots__/extract.spec.js.snap +++ b/test/manager/docker/__snapshots__/extract.spec.js.snap @@ -8,7 +8,9 @@ Array [ "currentDepTagDigest": "node:8.11.3-alpine@sha256:d743b4141b02fcfb8beb68f92b4cd164f60ee457bf2d053f36785bf86de16b0d", "currentDigest": "sha256:d743b4141b02fcfb8beb68f92b4cd164f60ee457bf2d053f36785bf86de16b0d", "currentFrom": "node:8.11.3-alpine@sha256:d743b4141b02fcfb8beb68f92b4cd164f60ee457bf2d053f36785bf86de16b0d", + "currentPlatform": "alpine", "currentTag": "8.11.3-alpine", + "currentValue": "8.11.3", "depName": "node", "dockerRegistry": undefined, "fromLine": "FROM node:8.11.3-alpine@sha256:d743b4141b02fcfb8beb68f92b4cd164f60ee457bf2d053f36785bf86de16b0d AS node", @@ -22,7 +24,9 @@ Array [ "currentDepTagDigest": "buildkite/puppeteer:1.1.1", "currentDigest": undefined, "currentFrom": "buildkite/puppeteer:1.1.1", + "currentPlatform": undefined, "currentTag": "1.1.1", + "currentValue": "1.1.1", "depName": "buildkite/puppeteer", "dockerRegistry": undefined, "fromLine": "FROM buildkite/puppeteer:1.1.1 AS puppeteer", @@ -42,7 +46,9 @@ Array [ "currentDepTagDigest": "node:6.12.3", "currentDigest": undefined, "currentFrom": "node:6.12.3", + "currentPlatform": undefined, "currentTag": "6.12.3", + "currentValue": "6.12.3", "depName": "node", "dockerRegistry": undefined, "fromLine": "FROM node:6.12.3 as frontend", @@ -56,7 +62,9 @@ Array [ "currentDepTagDigest": "python:3.6-slim", "currentDigest": undefined, "currentFrom": "python:3.6-slim", + "currentPlatform": "slim", "currentTag": "3.6-slim", + "currentValue": "3.6", "depName": "python", "dockerRegistry": undefined, "fromLine": "FROM python:3.6-slim", @@ -76,7 +84,9 @@ Array [ "currentDepTagDigest": "node:8.7.0", "currentDigest": undefined, "currentFrom": "registry.allmine.info:5005/node:8.7.0", + "currentPlatform": undefined, "currentTag": "8.7.0", + "currentValue": "8.7.0", "depName": "node", "dockerRegistry": "registry.allmine.info:5005", "fromLine": "FROM registry.allmine.info:5005/node:8.7.0", @@ -96,7 +106,9 @@ Array [ "currentDepTagDigest": "node", "currentDigest": undefined, "currentFrom": "node", + "currentPlatform": undefined, "currentTag": undefined, + "currentValue": undefined, "depName": "node", "dockerRegistry": undefined, "fromLine": "FROM node", @@ -116,7 +128,9 @@ Array [ "currentDepTagDigest": "node:8", "currentDigest": undefined, "currentFrom": "registry2.something.info/node:8", + "currentPlatform": undefined, "currentTag": "8", + "currentValue": "8", "depName": "node", "dockerRegistry": "registry2.something.info", "fromLine": "FROM registry2.something.info/node:8", @@ -136,7 +150,9 @@ Array [ "currentDepTagDigest": "someaccount/node:8", "currentDigest": undefined, "currentFrom": "registry2.something.info/someaccount/node:8", + "currentPlatform": undefined, "currentTag": "8", + "currentValue": "8", "depName": "someaccount/node", "dockerRegistry": "registry2.something.info", "fromLine": "FROM registry2.something.info/someaccount/node:8", @@ -156,7 +172,9 @@ Array [ "currentDepTagDigest": "node:8", "currentDigest": undefined, "currentFrom": "registry2.something.info:5005/node:8", + "currentPlatform": undefined, "currentTag": "8", + "currentValue": "8", "depName": "node", "dockerRegistry": "registry2.something.info:5005", "fromLine": "FROM registry2.something.info:5005/node:8", @@ -176,7 +194,9 @@ Array [ "currentDepTagDigest": "node@sha256:eb85fc5b1198f5e1ec025ea07586bdbbf397e7d82df66c90d7511f533517e063", "currentDigest": "sha256:eb85fc5b1198f5e1ec025ea07586bdbbf397e7d82df66c90d7511f533517e063", "currentFrom": "node@sha256:eb85fc5b1198f5e1ec025ea07586bdbbf397e7d82df66c90d7511f533517e063", + "currentPlatform": undefined, "currentTag": undefined, + "currentValue": undefined, "depName": "node", "dockerRegistry": undefined, "fromLine": "FROM node@sha256:eb85fc5b1198f5e1ec025ea07586bdbbf397e7d82df66c90d7511f533517e063", @@ -196,7 +216,9 @@ Array [ "currentDepTagDigest": "node:8.9.0-alpine", "currentDigest": undefined, "currentFrom": "node:8.9.0-alpine", + "currentPlatform": "alpine", "currentTag": "8.9.0-alpine", + "currentValue": "8.9.0", "depName": "node", "dockerRegistry": undefined, "fromLine": "FROM node:8.9.0-alpine as base", @@ -216,7 +238,9 @@ Array [ "currentDepTagDigest": "node", "currentDigest": undefined, "currentFrom": "node", + "currentPlatform": undefined, "currentTag": undefined, + "currentValue": undefined, "depName": "node", "dockerRegistry": undefined, "fromLine": "FROM node", @@ -236,7 +260,9 @@ Array [ "currentDepTagDigest": "mynamespace/node:8", "currentDigest": undefined, "currentFrom": "mynamespace/node:8", + "currentPlatform": undefined, "currentTag": "8", + "currentValue": "8", "depName": "mynamespace/node", "dockerRegistry": undefined, "fromLine": "FROM mynamespace/node:8", @@ -256,7 +282,9 @@ Array [ "currentDepTagDigest": "node:8.9.0-alpine", "currentDigest": undefined, "currentFrom": "node:8.9.0-alpine", + "currentPlatform": "alpine", "currentTag": "8.9.0-alpine", + "currentValue": "8.9.0", "depName": "node", "dockerRegistry": undefined, "fromLine": "FROM node:8.9.0-alpine", @@ -276,7 +304,9 @@ Array [ "currentDepTagDigest": "node:8.9.0@sha256:eb85fc5b1198f5e1ec025ea07586bdbbf397e7d82df66c90d7511f533517e063", "currentDigest": "sha256:eb85fc5b1198f5e1ec025ea07586bdbbf397e7d82df66c90d7511f533517e063", "currentFrom": "node:8.9.0@sha256:eb85fc5b1198f5e1ec025ea07586bdbbf397e7d82df66c90d7511f533517e063", + "currentPlatform": undefined, "currentTag": "8.9.0", + "currentValue": "8.9.0", "depName": "node", "dockerRegistry": undefined, "fromLine": "FROM node:8.9.0@sha256:eb85fc5b1198f5e1ec025ea07586bdbbf397e7d82df66c90d7511f533517e063", @@ -296,7 +326,9 @@ Array [ "currentDepTagDigest": "node", "currentDigest": undefined, "currentFrom": "node", + "currentPlatform": undefined, "currentTag": undefined, + "currentValue": undefined, "depName": "node", "dockerRegistry": undefined, "fromLine": "From node", @@ -316,7 +348,9 @@ Array [ "currentDepTagDigest": "node:6.12.3", "currentDigest": undefined, "currentFrom": "node:6.12.3", + "currentPlatform": undefined, "currentTag": "6.12.3", + "currentValue": "6.12.3", "depName": "node", "dockerRegistry": undefined, "fromLine": "FROM node:6.12.3 as frontend",