diff --git a/lib/manager/gitlabci/__fixtures__/gitlab-ci.yaml b/lib/manager/gitlabci/__fixtures__/gitlab-ci.yaml index 145811e6aedf8a..e385b37942b5bf 100644 --- a/lib/manager/gitlabci/__fixtures__/gitlab-ci.yaml +++ b/lib/manager/gitlabci/__fixtures__/gitlab-ci.yaml @@ -1,3 +1,5 @@ +image: 'ruby:2.5.0' + .executor-docker: &executor-docker tags: - docker diff --git a/lib/manager/gitlabci/__snapshots__/extract.spec.ts.snap b/lib/manager/gitlabci/__snapshots__/extract.spec.ts.snap index 1587d27e655cf0..cf7c455c59d31d 100644 --- a/lib/manager/gitlabci/__snapshots__/extract.spec.ts.snap +++ b/lib/manager/gitlabci/__snapshots__/extract.spec.ts.snap @@ -2,6 +2,15 @@ exports[`lib/manager/gitlabci/extract extractPackageFile() extracts multiple image lines 1`] = ` Array [ + Object { + "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}", + "currentDigest": undefined, + "currentValue": "2.5.0", + "datasource": "docker", + "depName": "ruby", + "depType": "image", + "replaceString": "ruby:2.5.0", + }, Object { "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}", "currentDigest": undefined, diff --git a/lib/manager/gitlabci/extract.spec.ts b/lib/manager/gitlabci/extract.spec.ts index 60e8a17ac342f6..269e4d30e44be1 100644 --- a/lib/manager/gitlabci/extract.spec.ts +++ b/lib/manager/gitlabci/extract.spec.ts @@ -19,7 +19,10 @@ describe('lib/manager/gitlabci/extract', () => { it('extracts multiple image lines', () => { const res = extractPackageFile(yamlFile); expect(res.deps).toMatchSnapshot(); - expect(res.deps).toHaveLength(6); + expect(res.deps).toHaveLength(7); + expect(res.deps.some((dep) => dep.currentValue.includes("'"))).toBe( + false + ); }); it('extracts multiple image lines with comments', () => { diff --git a/lib/manager/gitlabci/extract.ts b/lib/manager/gitlabci/extract.ts index 81b4ed8b018838..b3361db186db30 100644 --- a/lib/manager/gitlabci/extract.ts +++ b/lib/manager/gitlabci/extract.ts @@ -20,12 +20,12 @@ export function extractPackageFile(content: string): PackageFile | null { const lines = content.split('\n'); for (let lineNumber = 0; lineNumber < lines.length; lineNumber += 1) { const line = lines[lineNumber]; - const imageMatch = /^\s*image:\s*'?"?([^\s]+|)'?"?\s*$/.exec(line); + const imageMatch = /^\s*image:\s*'?"?([^\s'"]+|)'?"?\s*$/.exec(line); if (imageMatch) { switch (imageMatch[1]) { case '': { const imageNameLine = skipCommentLines(lines, lineNumber + 1); - const imageNameMatch = /^\s*name:\s*'?"?([^\s]+|)'?"?\s*$/.exec( + const imageNameMatch = /^\s*name:\s*'?"?([^\s'"]+|)'?"?\s*$/.exec( imageNameLine.line );