diff --git a/lib/config/presets/internal/regex-managers.spec.ts b/lib/config/presets/internal/regex-managers.spec.ts index 3942c9f0530af0..07259740701d97 100644 --- a/lib/config/presets/internal/regex-managers.spec.ts +++ b/lib/config/presets/internal/regex-managers.spec.ts @@ -23,6 +23,9 @@ describe('config/presets/internal/regex-managers', () => { # renovate: datasource=custom.hashicorp depName=consul ENV CONSUL_VERSION 1.3.1 + # renovate: datasource=github-releases depName=kubernetes-sigs/kustomize versioning=regex:^(?.+)/v(?\\d+)\\.(?\\d+)\\.(?\\d+)$ extractVersion=^kustomize/(?.+)$ + ENV KUSTOMIZE_VERSION v5.2.1 + RUN echo "FOO" `; @@ -62,6 +65,16 @@ describe('config/presets/internal/regex-managers', () => { replaceString: '# renovate: datasource=custom.hashicorp depName=consul\nENV CONSUL_VERSION 1.3.1\n', }, + { + currentValue: 'v5.2.1', + datasource: 'github-releases', + depName: 'kubernetes-sigs/kustomize', + replaceString: + '# renovate: datasource=github-releases depName=kubernetes-sigs/kustomize versioning=regex:^(?.+)/v(?\\d+)\\.(?\\d+)\\.(?\\d+)$ extractVersion=^kustomize/(?.+)$\nENV KUSTOMIZE_VERSION v5.2.1\n', + extractVersion: '^kustomize/(?.+)$', + versioning: + 'regex:^(?.+)/v(?\\d+)\\.(?\\d+)\\.(?\\d+)$', + }, ]); }); @@ -100,6 +113,8 @@ describe('config/presets/internal/regex-managers', () => { YARN_VERSION: '3.3.1' # renovate: datasource=custom.hashicorp depName=consul CONSUL_VERSION: 1.3.1 + # renovate: datasource=github-releases depName=hashicorp/terraform versioning=hashicorp extractVersion=^v(?.+)$ + TERRAFORM_VERSION: 1.5.7 jobs: lint: @@ -149,6 +164,15 @@ describe('config/presets/internal/regex-managers', () => { replaceString: '# renovate: datasource=custom.hashicorp depName=consul\n CONSUL_VERSION: 1.3.1\n', }, + { + currentValue: '1.5.7', + datasource: 'github-releases', + depName: 'hashicorp/terraform', + replaceString: + '# renovate: datasource=github-releases depName=hashicorp/terraform versioning=hashicorp extractVersion=^v(?.+)$\n TERRAFORM_VERSION: 1.5.7\n', + versioning: 'hashicorp', + extractVersion: '^v(?.+)$', + }, ]); }); diff --git a/lib/config/presets/internal/regex-managers.ts b/lib/config/presets/internal/regex-managers.ts index cd2e718f9a2870..7a9dee45edd745 100644 --- a/lib/config/presets/internal/regex-managers.ts +++ b/lib/config/presets/internal/regex-managers.ts @@ -12,7 +12,7 @@ export const presets: Record = { '(^|/)([Dd]ocker|[Cc]ontainer)file[^/]*$', ], matchStrings: [ - '# renovate: datasource=(?[a-z-.]+?) depName=(?[^\\s]+?)(?: (lookupName|packageName)=(?[^\\s]+?))?(?: versioning=(?[^\\s]+?))?(?: registryUrl=(?[^\\s]+?))?\\s(?:ENV|ARG) .+?_VERSION[ =]"?(?.+?)"?\\s', + '# renovate: datasource=(?[a-z-.]+?) depName=(?[^\\s]+?)(?: (lookupName|packageName)=(?[^\\s]+?))?(?: versioning=(?[^\\s]+?))?(?: extractVersion=(?[^\\s]+?))?(?: registryUrl=(?[^\\s]+?))?\\s(?:ENV|ARG) .+?_VERSION[ =]"?(?.+?)"?\\s', ], }, ], @@ -24,7 +24,7 @@ export const presets: Record = { customType: 'regex', fileMatch: ['^.github/(?:workflows|actions)/.+\\.ya?ml$'], matchStrings: [ - '# renovate: datasource=(?[a-z-.]+?) depName=(?[^\\s]+?)(?: (?:lookupName|packageName)=(?[^\\s]+?))?(?: versioning=(?[a-z-0-9]+?))?\\s+[A-Za-z0-9_]+?_VERSION\\s*:\\s*["\']?(?.+?)["\']?\\s', + '# renovate: datasource=(?[a-z-.]+?) depName=(?[^\\s]+?)(?: (?:lookupName|packageName)=(?[^\\s]+?))?(?: versioning=(?[a-z-0-9]+?))?(?: extractVersion=(?[^\\s]+?))?\\s+[A-Za-z0-9_]+?_VERSION\\s*:\\s*["\']?(?.+?)["\']?\\s', ], }, ], @@ -37,7 +37,7 @@ export const presets: Record = { customType: 'regex', fileMatch: ['\\.gitlab-ci\\.ya?ml$'], matchStrings: [ - '# renovate: datasource=(?[a-z-.]+?) depName=(?[^\\s]+?)(?: (?:packageName)=(?[^\\s]+?))?(?: versioning=(?[a-z-0-9]+?))?\\s+[A-Za-z0-9_]+?_VERSION\\s*:\\s*["\']?(?.+?)["\']?\\s', + '# renovate: datasource=(?[a-z-.]+?) depName=(?[^\\s]+?)(?: (?:packageName)=(?[^\\s]+?))?(?: versioning=(?[a-z-0-9]+?))?(?: extractVersion=(?[^\\s]+?))?\\s+[A-Za-z0-9_]+?_VERSION\\s*:\\s*["\']?(?.+?)["\']?\\s', ], }, ], @@ -65,7 +65,7 @@ export const presets: Record = { '{{#if datasource}}{{{datasource}}}{{else}}maven{{/if}}', fileMatch: ['(^|/)pom\\.xml$'], matchStrings: [ - '\\s+<.+\\.version>(?.+)<\\/.+\\.version>', + '\\s+<.+\\.version>(?.+)<\\/.+\\.version>', ], versioningTemplate: '{{#if versioning}}{{{versioning}}}{{/if}}', }, @@ -78,7 +78,7 @@ export const presets: Record = { customType: 'regex', fileMatch: ['.+\\.tfvars$'], matchStrings: [ - '#\\s*renovate: datasource=(?.*?) depName=(?.*?)( versioning=(?.*?))?\\s.*?_version\\s*=\\s*"(?.*)"', + '#\\s*renovate: datasource=(?.*?) depName=(?.*?)( versioning=(?.*?))?(?: extractVersion=(?.*?))?\\s.*?_version\\s*=\\s*"(?.*)"', ], versioningTemplate: '{{#if versioning}}{{{versioning}}}{{/if}}', },