Repository navigation
Expand file tree
/
Copy pathrenovate.json5
More file actions
141 lines (141 loc) · 4.92 KB
/
Copy pathrenovate.json5
File metadata and controls
141 lines (141 loc) · 4.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
{
$schema: "https://docs.renovatebot.com/renovate-schema.json",
extends: ["config:recommended", "group:allNonMajor"],
enabledManagers: ["npm", "github-actions", "custom.regex"],
ignoreDeps: [
// This dependency is patched locally, so updates require a manual patch review.
"@changesets/cli",
// Keep this pinned to the known-compatible version.
"blake3-wasm",
// Keep the supported Node range broad instead of raising its minimum version.
"node",
// This must match the Vitest version bundled with Vite+.
"vitest@*",
// tsx 4.23.1+ exhausts file handles during SDK generation on macOS and Windows.
"tsx",
],
dependencyDashboard: false,
labels: ["dependencies"],
minimumReleaseAge: "3 days",
rangeStrategy: "bump",
postUpdateOptions: ["pnpmDedupe"],
schedule: ["on monday"],
packageRules: [
{
description: "Update GitHub Actions separately from package dependencies",
matchManagers: ["github-actions"],
pinDigests: true,
groupName: "GitHub Actions",
groupSlug: "github-actions",
},
{
description: "Update packages published from workers-sdk together",
matchPackageNames: [
"@cloudflare/autoconfig",
"@cloudflare/build-output-utils",
"@cloudflare/cli-shared-helpers",
"@cloudflare/codemods",
"@cloudflare/config",
"@cloudflare/containers-shared",
"@cloudflare/deploy-helpers",
"@cloudflare/runtime-types",
"@cloudflare/workers-auth",
"@cloudflare/workers-utils",
"miniflare",
],
enabled: true,
groupName: "workers-sdk derived dependencies",
groupSlug: "workers-sdk",
minimumReleaseAge: "0 minutes",
postUpgradeTasks: {
commands: ["node ./scripts/create-workers-sdk-changeset.mjs"],
dataFileTemplate: "{{{toJSON upgrades}}}",
executionMode: "branch",
fileFilters: [".changeset/renovate-workers-sdk-*.md"],
},
schedule: ["at any time"],
},
{
description: "Update workers-sdk dependencies used only by tests and fixtures together",
matchPackageNames: [
"@cloudflare/vite-plugin",
"@cloudflare/workers-types",
"wrangler",
],
groupName: "workers-sdk derived test and fixture dependencies",
groupSlug: "workers-sdk-test-fixtures",
minimumReleaseAge: "0 minutes",
schedule: ["at any time"],
},
{
description: "Follow Miniflare's beta release",
matchPackageNames: ["miniflare"],
followTag: "beta",
},
{
description: "Follow the Vite plugin's beta release",
matchPackageNames: ["@cloudflare/vite-plugin"],
followTag: "beta",
},
{
description: "Update pnpm",
matchPackageNames: ["pnpm"],
groupName: "pnpm",
groupSlug: "pnpm",
},
{
description: "Update the Forge build, then regenerate the commands from the pinned OpenAPI release (scripts/update-openapi.ts moves that pin)",
matchManagers: ["custom.regex"],
matchDepNames: ["@cloudflare/forge"],
groupName: "Forge",
groupSlug: "forge",
minimumReleaseAge: "0 minutes",
schedule: ["at any time"],
// Post-upgrade tasks run in Renovate's slim image, which installs tools on demand.
constraints: { node: "22" },
postUpgradeTasks: {
installTools: { node: {}, pnpm: {} },
// The regex manager edits only package.json, so pnpm refreshes the lockfile here.
commands: [
"pnpm install --no-frozen-lockfile",
"pnpm generate",
"node ./scripts/create-forge-changeset.mjs",
],
dataFileTemplate: "{{{toJSON upgrades}}}",
executionMode: "branch",
fileFilters: [
"pnpm-lock.yaml",
"packages/cli/src/commands/_generated/**",
".changeset/renovate-forge-*.md",
],
},
},
],
customManagers: [
{
customType: "regex",
description: "Track the newest @cloudflare/forge build published from Forge's main branch",
managerFilePatterns: ["/^packages/cli/package\\.json$/"],
matchStrings: [
'"@cloudflare/forge": "https://pkg\\.pr\\.new/cloudflare/forge/@cloudflare/forge@(?<currentDigest>[0-9a-f]{40})"',
],
depNameTemplate: "@cloudflare/forge",
currentValueTemplate: "main",
datasourceTemplate: "custom.forge-main",
versioningTemplate: "exact",
autoReplaceStringTemplate: '"@cloudflare/forge": "https://pkg.pr.new/cloudflare/forge/@cloudflare/forge@{{{newDigest}}}"',
},
],
// Reports one release whose digest is the commit to pin, as pkg.pr.new builds
// have no orderable versions.
customDatasources: {
"forge-main": {
// Forge's main pushes only publish when the package's inputs change, so
// follow successful publish runs rather than the head of main.
defaultRegistryUrlTemplate: "https://api.github.com/repos/cloudflare/forge/actions/workflows/publish-preview.yml/runs?branch=main&event=push&status=success&per_page=1",
transformTemplates: [
'$count(workflow_runs) > 0 ? {"releases": [{"version": "main", "digest": workflow_runs[0].head_sha, "releaseTimestamp": workflow_runs[0].updated_at, "sourceUrl": "https://github.com/cloudflare/forge"}], "sourceUrl": "https://github.com/cloudflare/forge"} : {"releases": []}',
],
},
},
}