Skip to content

Commit fbb4d6f

Browse files
committed
Group the dependencies' updates done by Renovate
This was done to reduce the number of dependency update commits that are eventually merged into the default branch's commit history. The custom regular expression package managers/managers were written to enable Renovate to manage updates for Packer, Packer plugins, and Vagrant. The versioning for Vagrant is set to loose because, unlike Packer, Vagrant doesn't have an explicit setting denoting the version of it that should be used. The versioning for Packer and its plugins is set to 'hashicorp' because Packer's version setting is very similar to the one used by Terraform, which is what this built-in versioning was created around.
1 parent bfc6894 commit fbb4d6f

File tree

3 files changed

+84
-3
lines changed

3 files changed

+84
-3
lines changed

k8s-nodes.pkr.hcl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
packer {
22
required_plugins {
33
qemu = {
4+
# renovate: datasource=github-releases versioning=hashicorp
45
version = "= 1.0.9"
56
source = "github.com/hashicorp/qemu"
67
}
78
ansible = {
9+
# renovate: datasource=github-releases versioning=hashicorp
810
version = "= 1.1.0"
911
source = "github.com/hashicorp/ansible"
1012
}
1113
}
1214

15+
# renovate: datasource=github-releases packageName=hashicorp/packer versioning=hashicorp
1316
required_version = "~> 1.10.0"
1417
}
1518

renovate.json

Lines changed: 80 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,89 @@
11
{
22
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
3+
"separateMajorMinor": false,
4+
"commitMessagePrefix": "",
35
"extends": [
46
"config:recommended"
57
],
68
"pre-commit": {
79
"enabled": true
810
},
9-
"lockFileMaintenance": {
10-
"enabled": true
11-
}
11+
"customManagers": [
12+
{
13+
"customType": "regex",
14+
"managerFilePatterns": [
15+
"scripts/chk-vagrant-pkg"
16+
],
17+
"matchStrings": [
18+
"# renovate: datasource=(?<datasource>\\S+) packageName=(?<packageName>\\S+) versioning=(?<versioning>\\S+)\\nreadonly VAGRANT_UPSTREAM_VERSION=\"(?<currentValue>\\S+)\""
19+
]
20+
},
21+
{
22+
"customType": "regex",
23+
"packageNameTemplate": "{{#if (equals packageName 'hashicorp/packer')}}{{{packageName}}}{{else}}{{{replace 'hashicorp/' 'hashicorp/packer-plugin-' packageName}}}{{/if}}",
24+
"managerFilePatterns": [
25+
"k8s-nodes.pkr.hcl"
26+
],
27+
"matchStrings": [
28+
"# renovate: datasource=(?<datasource>\\S+) packageName=(?<packageName>\\S+) versioning=(?<versioning>\\S+)\\n\\s*required_version\\s+=\\s+\"(?<currentValue>.+)\"",
29+
"# renovate: datasource=(?<datasource>\\S+) versioning=(?<versioning>\\S+)\\n\\s*version\\s+=\\s+\"(?<currentValue>.+)\"\\n\\s*source\\s+=\\s+\"github.com\/(?<packageName>.+)\""
30+
]
31+
}
32+
],
33+
"packageRules": [
34+
{
35+
"groupName": "dependencies",
36+
"matchFileNames": [
37+
"requirements.txt"
38+
]
39+
},
40+
{
41+
"groupName": "dependencies",
42+
"matchManagers": [
43+
"ansible-galaxy",
44+
"terraform"
45+
]
46+
},
47+
{
48+
"groupName": "dependencies",
49+
"matchDatasources": [
50+
"python-version"
51+
]
52+
},
53+
{
54+
"groupName": "dependencies",
55+
"matchPackageNames": [
56+
"hashicorp/packer",
57+
"hashicorp/packer-plugin-qemu",
58+
"hashicorp/packer-plugin-ansible"
59+
]
60+
},
61+
{
62+
"groupName": "development dependencies",
63+
"matchFileNames": [
64+
"requirements-dev.txt",
65+
"mitmproxy/requirements-dev.txt"
66+
]
67+
},
68+
{
69+
"groupName": "development dependencies",
70+
"matchManagers": [
71+
"bundler",
72+
"npm",
73+
"pre-commit"
74+
]
75+
},
76+
{
77+
"groupName": "development dependencies",
78+
"matchDatasources": [
79+
"node-version"
80+
]
81+
},
82+
{
83+
"groupName": "development dependencies",
84+
"matchPackageNames": [
85+
"hashicorp/vagrant"
86+
]
87+
}
88+
]
1289
}

scripts/chk-vagrant-pkg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ PROGNAME="$(basename "$0")"
2121
readonly PROGNAME
2222
readonly FALSE=0
2323
readonly TRUE=1
24+
# renovate: datasource=github-releases packageName=hashicorp/vagrant versioning=loose
2425
readonly VAGRANT_UPSTREAM_VERSION="2.4.1"
2526
readonly VAGRANT_APT_REPO="apt.releases.hashicorp.com"
2627

0 commit comments

Comments
 (0)