diff --git a/lib/manager/github-actions/__fixtures__/workflow_2.yml b/lib/manager/github-actions/__fixtures__/workflow_2.yml index 723d462bfa2ee582a4f5c8b5d6f4d4055bb8cb90..6ca2c7729d5e47515bef3e7b54ff219bbf0f14d7 100644 --- a/lib/manager/github-actions/__fixtures__/workflow_2.yml +++ b/lib/manager/github-actions/__fixtures__/workflow_2.yml @@ -20,3 +20,18 @@ jobs: - uses: docker/setup-qemu-action@c308fdd69d26ed66f4506ebd74b180abe5362145 - name: Build uses: docker/build-push-action@v2 + rustfmt: + name: Run Rustfmt + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # tag=v2.4.0 + - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af # renovate: tag=v1.0.7 + with: + profile: minimal + toolchain: stable + components: rustfmt + override: true + - uses: actions-rs/cargo@v1.0.3 + with: + command: fmt + args: --all -- --check diff --git a/lib/manager/github-actions/__snapshots__/extract.spec.ts.snap b/lib/manager/github-actions/__snapshots__/extract.spec.ts.snap index cfb507e2dfaa483516e140530cab68d57606e335..412c11f3e339de8b9877abcfbf1ce4b6e2607e2a 100644 --- a/lib/manager/github-actions/__snapshots__/extract.spec.ts.snap +++ b/lib/manager/github-actions/__snapshots__/extract.spec.ts.snap @@ -3,7 +3,7 @@ exports[`manager/github-actions/extract extractPackageFile() extracts multiple action tag lines from yaml configuration file 1`] = ` Array [ Object { - "autoReplaceStringTemplate": "{{depName}}/shellcheck@{{#if newDigest}}{{newDigest}}{{#if newValue}} # renovate: tag={{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}", + "autoReplaceStringTemplate": "{{depName}}/shellcheck@{{#if newDigest}}{{newDigest}}{{#if newValue}} # tag={{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}", "commitMessageTopic": "{{{depName}}} action", "currentValue": "master", "datasource": "github-tags", @@ -14,7 +14,7 @@ Array [ "versioning": "docker", }, Object { - "autoReplaceStringTemplate": "{{depName}}@{{#if newDigest}}{{newDigest}}{{#if newValue}} # renovate: tag={{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}", + "autoReplaceStringTemplate": "{{depName}}@{{#if newDigest}}{{newDigest}}{{#if newValue}} # tag={{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}", "commitMessageTopic": "{{{depName}}} action", "currentDigest": "c308fdd69d26ed66f4506ebd74b180abe5362145", "currentValue": "v1.1.0", @@ -25,7 +25,7 @@ Array [ "versioning": "docker", }, Object { - "autoReplaceStringTemplate": "{{depName}}@{{#if newDigest}}{{newDigest}}{{#if newValue}} # renovate: tag={{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}", + "autoReplaceStringTemplate": "{{depName}}@{{#if newDigest}}{{newDigest}}{{#if newValue}} # tag={{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}", "commitMessageTopic": "{{{depName}}} action", "currentValue": "1.0.0", "datasource": "github-tags", @@ -35,7 +35,7 @@ Array [ "versioning": "docker", }, Object { - "autoReplaceStringTemplate": "{{depName}}@{{#if newDigest}}{{newDigest}}{{#if newValue}} # renovate: tag={{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}", + "autoReplaceStringTemplate": "{{depName}}@{{#if newDigest}}{{newDigest}}{{#if newValue}} # tag={{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}", "commitMessageTopic": "{{{depName}}} action", "currentDigest": "c308fdd69d26ed66f4506ebd74b180abe5362145", "currentValue": undefined, @@ -46,7 +46,7 @@ Array [ "versioning": "docker", }, Object { - "autoReplaceStringTemplate": "{{depName}}@{{#if newDigest}}{{newDigest}}{{#if newValue}} # renovate: tag={{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}", + "autoReplaceStringTemplate": "{{depName}}@{{#if newDigest}}{{newDigest}}{{#if newValue}} # tag={{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}", "commitMessageTopic": "{{{depName}}} action", "currentValue": "v2", "datasource": "github-tags", @@ -55,13 +55,45 @@ Array [ "replaceString": "docker/build-push-action@v2", "versioning": "docker", }, + Object { + "autoReplaceStringTemplate": "{{depName}}@{{#if newDigest}}{{newDigest}}{{#if newValue}} # tag={{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}", + "commitMessageTopic": "{{{depName}}} action", + "currentDigest": "ec3a7ce113134d7a93b817d10a8272cb61118579", + "currentValue": "v2.4.0", + "datasource": "github-tags", + "depName": "actions/checkout", + "depType": "action", + "replaceString": "actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # tag=v2.4.0", + "versioning": "docker", + }, + Object { + "autoReplaceStringTemplate": "{{depName}}@{{#if newDigest}}{{newDigest}}{{#if newValue}} # tag={{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}", + "commitMessageTopic": "{{{depName}}} action", + "currentDigest": "16499b5e05bf2e26879000db0c1d13f7e13fa3af", + "currentValue": "v1.0.7", + "datasource": "github-tags", + "depName": "actions-rs/toolchain", + "depType": "action", + "replaceString": "actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af # renovate: tag=v1.0.7", + "versioning": "docker", + }, + Object { + "autoReplaceStringTemplate": "{{depName}}@{{#if newDigest}}{{newDigest}}{{#if newValue}} # tag={{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}", + "commitMessageTopic": "{{{depName}}} action", + "currentValue": "v1.0.3", + "datasource": "github-tags", + "depName": "actions-rs/cargo", + "depType": "action", + "replaceString": "actions-rs/cargo@v1.0.3", + "versioning": "docker", + }, ] `; exports[`manager/github-actions/extract extractPackageFile() extracts multiple docker image lines from yaml configuration file 1`] = ` Array [ Object { - "autoReplaceStringTemplate": "{{depName}}/shellcheck@{{#if newDigest}}{{newDigest}}{{#if newValue}} # renovate: tag={{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}", + "autoReplaceStringTemplate": "{{depName}}/shellcheck@{{#if newDigest}}{{newDigest}}{{#if newValue}} # tag={{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}", "commitMessageTopic": "{{{depName}}} action", "currentValue": "master", "datasource": "github-tags", @@ -82,7 +114,7 @@ Array [ "versioning": "docker", }, Object { - "autoReplaceStringTemplate": "{{depName}}/cli@{{#if newDigest}}{{newDigest}}{{#if newValue}} # renovate: tag={{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}", + "autoReplaceStringTemplate": "{{depName}}/cli@{{#if newDigest}}{{newDigest}}{{#if newValue}} # tag={{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}", "commitMessageTopic": "{{{depName}}} action", "currentValue": "master", "datasource": "github-tags", diff --git a/lib/manager/github-actions/extract.spec.ts b/lib/manager/github-actions/extract.spec.ts index 8e18e2e341ba75fdcee42bae4a21141888212707..cf3ec22966c1cb790da48e6776494e7dabbc7bb6 100644 --- a/lib/manager/github-actions/extract.spec.ts +++ b/lib/manager/github-actions/extract.spec.ts @@ -16,7 +16,7 @@ describe('manager/github-actions/extract', () => { expect(res.deps).toMatchSnapshot(); expect( res.deps.filter((d) => d.datasource === 'github-tags') - ).toHaveLength(5); + ).toHaveLength(8); }); }); }); diff --git a/lib/manager/github-actions/extract.ts b/lib/manager/github-actions/extract.ts index b22b96436d1cef860072c51cd0c7a8bbd310caad..d29f9b2426b61645182cbf9f52a8ddc8d5ad6d53 100644 --- a/lib/manager/github-actions/extract.ts +++ b/lib/manager/github-actions/extract.ts @@ -7,7 +7,7 @@ import type { PackageDependency, PackageFile } from '../types'; const dockerRe = regEx(/^\s+uses: docker:\/\/([^"]+)\s*$/); const actionRe = regEx( - /^\s+-?\s+?uses: (?<replaceString>(?<depName>[\w-]+\/[\w-]+)(?<path>\/.*)?@(?<currentValue>.+?)(?: # renovate: tag=(?<tag>.+?))?)\s*?$/ + /^\s+-?\s+?uses: (?<replaceString>(?<depName>[\w-]+\/[\w-]+)(?<path>\/.*)?@(?<currentValue>.+?)\s*(?:#\s+(?:renovate:\s+)?tag=(?<tag>.+?))?)\s*?$/ ); // SHA1 or SHA256, see https://github.blog/2020-10-19-git-2-29-released/ @@ -47,7 +47,7 @@ export function extractPackageFile(content: string): PackageFile | null { versioning: dockerVersioning.id, depType: 'action', replaceString, - autoReplaceStringTemplate: `{{depName}}${path}@{{#if newDigest}}{{newDigest}}{{#if newValue}} # renovate: tag={{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}`, + autoReplaceStringTemplate: `{{depName}}${path}@{{#if newDigest}}{{newDigest}}{{#if newValue}} # tag={{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}`, }; if (shaRe.test(currentValue)) { dep.currentValue = tag;