Skip to content

Commit e126c95

Browse files
ci: Replicate contrib renovate setup (#2102)
* Replicate contrib renovate setup * sync cspell * update cspell * Tighten regex for versions to update ruby to * Delete .github/dependabot.yml * Add the disable digest rule
1 parent 14aaca6 commit e126c95

3 files changed

Lines changed: 165 additions & 92 deletions

File tree

.cspell.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ ignoreWords:
6767
- Rubyish
6868
- rolldice
6969
- codegen
70+
- Dockerfiles
7071
words:
7172
- LOGRECORD
7273
- traceid
@@ -78,3 +79,5 @@ words:
7879

7980
- linkspector
8081
- SARIF
82+
- bigdecimal
83+
- confluentinc

.github/dependabot.yml

Lines changed: 0 additions & 79 deletions
This file was deleted.

.github/renovate.json5

Lines changed: 162 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,170 @@
11
{
2-
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
3-
"extends": [
2+
$schema: "https://docs.renovatebot.com/renovate-schema.json",
3+
extends: [
44
"config:best-practices",
5-
"helpers:pinGitHubActionDigestsToSemver"
5+
"helpers:pinGitHubActionDigestsToSemver",
6+
":separateMultipleMajorReleases",
67
],
7-
"packageRules": [
8+
prConcurrentLimit: 12,
9+
prHourlyLimit: 12,
10+
packageRules: [
811
{
9-
"groupName": "all patch versions",
10-
"matchUpdateTypes": ["patch"],
11-
"schedule": ["before 8am every weekday"]
12+
groupName: "all patch versions",
13+
matchDepNames: ["!ruby"],
14+
matchUpdateTypes: ["patch"],
15+
schedule: ["before 6am every weekday"],
1216
},
1317
{
14-
"matchUpdateTypes": ["minor", "major"],
15-
"schedule": ["before 8am on Monday"]
16-
}
18+
groupName: "all digest versions",
19+
matchDepNames: ["!ruby"],
20+
matchUpdateTypes: ["digest"],
21+
schedule: ["before 6am every weekday"],
22+
},
23+
{
24+
matchDepNames: ["ruby"],
25+
matchUpdateTypes: ["digest", "patch"],
26+
schedule: ["before 6am every weekday"],
27+
},
28+
{
29+
description: "Separate ruby updates so that patches can be installed after new minor has been released.",
30+
matchDepNames: ["ruby"],
31+
separateMultipleMinor: true,
32+
separateMinorPatch: true,
33+
},
34+
{
35+
description: "Group min ruby updates into a single update which needs to be approved via the dashboard.",
36+
groupName: "Min-Ruby-sdk",
37+
dependencyDashboardCategory: "Min Ruby Runtime",
38+
matchDepNames: ["ruby"],
39+
matchFileNames: [
40+
"**/*.gemspec",
41+
"Dockerfile",
42+
"examples/**/Dockerfile",
43+
"**/examples/Dockerfile",
44+
],
45+
matchUpdateTypes: ["minor", "major"],
46+
dependencyDashboardApproval: true,
47+
minimumReleaseAge: "820 days",
48+
prBodyNotes: [
49+
":exclamation: The old min version needs to be removed from the versions being tested in .github/actions/test_gem/action.yml.",
50+
],
51+
draftPR: true,
52+
},
53+
{
54+
matchUpdateTypes: ["minor"],
55+
schedule: ["before 7am on Monday"],
56+
},
57+
{
58+
matchUpdateTypes: ["major"],
59+
schedule: ["before 8am on Monday"],
60+
},
61+
{
62+
matchDepNames: ["actions/setup-node", "ruby/setup-ruby"],
63+
schedule: ["before 6am every weekday"],
64+
prConcurrentLimit: 0,
65+
automerge: true,
66+
},
67+
{
68+
description: "Require non-general dependencies in gemspec files to be approved",
69+
dependencyDashboardCategory: "{{depType}} should be migrated to Gemfile",
70+
matchCategories: ["custom"],
71+
matchDepNames: ["!ruby"],
72+
matchDepTypes: ["!dependency"],
73+
matchFileNames: ["**/*.gemspec"],
74+
dependencyDashboardApproval: true,
75+
},
76+
{
77+
description: "Disable digest for ruby base image",
78+
matchDepNames: ["Ruby"],
79+
matchFileNames: ["Dockerfile"],
80+
matchManagers: ["dockerfile"],
81+
matchUpdateTypes: ["digest"],
82+
enabled: false,
83+
},
84+
],
85+
customManagers: [
86+
{
87+
customType: "regex",
88+
description: "Update os version in Dockerfiles",
89+
managerFilePatterns: [
90+
"/(^|/|\\.)Dockerfile$/",
91+
"/(^|/)Dockerfile\\.[^/]*$/",
92+
],
93+
matchStrings: [
94+
"FROM\\s+(?<packageName>.+):(?<depVersion>[0-9.]+)-alpine(?<alpineVersion>[0-9.]+)@(?<currentDigest>sha256:[a-f0-9]{40,64})\\s",
95+
"FROM\\s+(?<packageName>.+):(?<depVersion>[0-9.]+)-alpine(?<alpineVersion>[0-9.]+)\\s",
96+
],
97+
datasourceTemplate: "docker",
98+
versioningTemplate: "docker",
99+
currentValueTemplate: "{{alpineVersion}}",
100+
extractVersionTemplate: "^{{depVersion}}-alpine(?<version>[0-9.]+)$",
101+
depNameTemplate: "{{packageName}}-alpine",
102+
depTypeTemplate: "final",
103+
},
104+
{
105+
customType: "regex",
106+
description: "Update dependencies in Appraisals",
107+
managerFilePatterns: ["**/Appraisals"],
108+
matchStrings: [
109+
"gem\\s'(?<packageName>.+?)',\\s'(?<depVersion>.+\\s[0-9.]+)'",
110+
],
111+
datasourceTemplate: "rubygems",
112+
versioningTemplate: "ruby",
113+
currentValueTemplate: "{{depVersion}}",
114+
depTypeTemplate: "testDependency",
115+
},
116+
{
117+
customType: "regex",
118+
description: "Update dependencies in gemspecs",
119+
managerFilePatterns: ["**/*.gemspec"],
120+
matchStrings: [
121+
".add_(?<depType>.*dependency)\\s'(?<packageName>.+?)',\\s'(?<depVersion>.+\\s[0-9.]+)'",
122+
],
123+
datasourceTemplate: "rubygems",
124+
versioningTemplate: "ruby",
125+
currentValueTemplate: "{{depVersion}}",
126+
},
127+
{
128+
customType: "regex",
129+
description: "Update min sdk in gemspec",
130+
managerFilePatterns: ["**/*.gemspec"],
131+
matchStrings: [
132+
"required_ruby_version\\s=\\s\'.+\\s(?<depVersion>[0-9]+.[0-9]+)\'",
133+
],
134+
datasourceTemplate: "ruby-version",
135+
versioningTemplate: "ruby",
136+
currentValueTemplate: "{{depVersion}}",
137+
extractVersionTemplate: "^(?<version>[0-9]+.[0-9]+).0$",
138+
depNameTemplate: "ruby",
139+
depTypeTemplate: "gemspec.required_ruby_version",
140+
},
141+
{
142+
customType: "regex",
143+
description: "Update os matrix",
144+
managerFilePatterns: [".github/**/**"],
145+
matchStrings: [
146+
"matrix:[\\s\\S]*os:[\\s\\S]*:",
147+
"os:\\s*\\n(?:\\s+-\\s+[\\w.-]+\\n)+",
148+
"- (?<packageName>.+?)-(?<depVersion>[0-9.]+)\\n",
149+
],
150+
matchStringsStrategy: "recursive",
151+
datasourceTemplate: "github-runners",
152+
currentValueTemplate: "{{depVersion}}",
153+
depTypeTemplate: "github-runner",
154+
},
155+
],
156+
lockFileMaintenance: {
157+
enabled: true,
158+
schedule: ["before 8am on Monday"],
159+
},
160+
labels: ["dependencies"],
161+
ignoreDeps: [
162+
"base64",
163+
"bigdecimal",
164+
"drb",
165+
"logger",
166+
"mutex_m",
167+
"observer",
168+
"ostruct",
17169
],
18-
"labels": [
19-
"dependencies"
20-
]
21170
}

0 commit comments

Comments
 (0)