diff --git a/lib/manager/circleci/__fixtures__/config3.yml b/lib/manager/circleci/__fixtures__/config3.yml new file mode 100644 index 0000000000000000000000000000000000000000..307ade4d7fcf144177b0e425c8e21c9e6c036ec6 --- /dev/null +++ b/lib/manager/circleci/__fixtures__/config3.yml @@ -0,0 +1,20 @@ +aliases: + - &nodejs + image: cimg/node:14.8.0 + +version: 2 +jobs: + checkout: + <<: *defaults + docker: + - *nodejs + steps: + - run: yarn build:runtime + + release_docker: + <<: *defaults + machine: + image: ubuntu-1604:201903-01 + docker_layer_caching: true + steps: + - run: ./scripts.sh diff --git a/lib/manager/circleci/__snapshots__/extract.spec.ts.snap b/lib/manager/circleci/__snapshots__/extract.spec.ts.snap index dafe4d26755315b8f14d63704c27ce34d5a8ca87..f5995278cbc27022ea8fdc50bfb4fac5c2ced207 100644 --- a/lib/manager/circleci/__snapshots__/extract.spec.ts.snap +++ b/lib/manager/circleci/__snapshots__/extract.spec.ts.snap @@ -1,5 +1,31 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`lib/manager/circleci/extract extractPackageFile() extracts image without leading dash 1`] = ` +Array [ + Object { + "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}", + "commitMessageTopic": "Node.js", + "currentDigest": undefined, + "currentValue": "14.8.0", + "datasource": "docker", + "depName": "cimg/node", + "depType": "docker", + "replaceString": "cimg/node:14.8.0", + "versioning": "docker", + }, + Object { + "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}", + "currentDigest": undefined, + "currentValue": "201903-01", + "datasource": "docker", + "depName": "ubuntu-1604", + "depType": "docker", + "replaceString": "ubuntu-1604:201903-01", + "versioning": "docker", + }, +] +`; + exports[`lib/manager/circleci/extract extractPackageFile() extracts multiple image lines 1`] = ` Array [ Object { diff --git a/lib/manager/circleci/extract.spec.ts b/lib/manager/circleci/extract.spec.ts index 949821fddb10cc249375c24f42153b0d3e08682b..a08517f43e1928ff2891842d083b4187db125830 100644 --- a/lib/manager/circleci/extract.spec.ts +++ b/lib/manager/circleci/extract.spec.ts @@ -9,6 +9,10 @@ const file2 = readFileSync( 'lib/manager/circleci/__fixtures__/config2.yml', 'utf8' ); +const file3 = readFileSync( + 'lib/manager/circleci/__fixtures__/config3.yml', + 'utf8' +); describe('lib/manager/circleci/extract', () => { describe('extractPackageFile()', () => { @@ -25,5 +29,9 @@ describe('lib/manager/circleci/extract', () => { expect(res.deps).toMatchSnapshot(); // expect(res.deps).toHaveLength(4); }); + it('extracts image without leading dash', () => { + const res = extractPackageFile(file3); + expect(res.deps).toMatchSnapshot(); + }); }); }); diff --git a/lib/manager/circleci/extract.ts b/lib/manager/circleci/extract.ts index 1b091140e725d642d5eff8de5b8970819de650d9..c94acb742632d54ae0209fb09c233fe1869ab8a6 100644 --- a/lib/manager/circleci/extract.ts +++ b/lib/manager/circleci/extract.ts @@ -39,7 +39,7 @@ export function extractPackageFile(content: string): PackageFile | null { } } while (foundOrb); } - const match = /^\s*- image:\s*'?"?([^\s'"]+)'?"?\s*$/.exec(line); + const match = /^\s*-? image:\s*'?"?([^\s'"]+)'?"?\s*$/.exec(line); if (match) { const currentFrom = match[1]; const dep = getDep(currentFrom);