Skip to content

Commit 7e9abdd

Browse files
authored
feat: add Renovate configuration and workflow for automated dependenc… (#155)
* feat: add Renovate configuration and workflow for automated dependency updates * feat: enhance Renovate configuration by grouping Iconify JSON, markdown tooling, linting tools, and husky packages
1 parent 6a94fee commit 7e9abdd

2 files changed

Lines changed: 169 additions & 1 deletion

File tree

.github/workflows/renovate.yaml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Renovate
2+
3+
on:
4+
schedule:
5+
- cron: '0 13 * * 1' # 8 AM CT Monday
6+
pull_request:
7+
paths:
8+
- 'renovate.json'
9+
- '.github/workflows/renovate.yaml'
10+
workflow_dispatch:
11+
inputs:
12+
dryRun:
13+
description: 'Dry run (no PRs created)'
14+
required: false
15+
default: 'false'
16+
type: choice
17+
options:
18+
- 'false'
19+
- 'true'
20+
21+
permissions:
22+
contents: write
23+
pull-requests: write
24+
25+
jobs:
26+
renovate:
27+
runs-on: ubuntu-latest
28+
steps:
29+
- name: Checkout
30+
uses: actions/checkout@v6
31+
32+
- name: Run Renovate
33+
uses: renovatebot/github-action@v46.1.5
34+
with:
35+
configurationFile: renovate.json
36+
token: ${{ secrets.CLOUDY_TOKEN }}
37+
env:
38+
LOG_LEVEL: info
39+
RENOVATE_REPOSITORIES: ${{ github.repository }}
40+
RENOVATE_DRY_RUN: ${{ github.event_name == 'pull_request' || inputs.dryRun || 'false' }}

renovate.json

Lines changed: 129 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,136 @@
11
{
2+
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
23
"extends": [
4+
"config:recommended",
5+
":semanticCommits",
6+
":semanticCommitTypeAll(chore)",
37
"github>nuxt/renovate-config-nuxt"
48
],
9+
"gitAuthor": "stjudecloud-cloudy <support@stjude.cloud>",
10+
"labels": [
11+
"dependencies"
12+
],
13+
"prHourlyLimit": 2,
14+
"prConcurrentLimit": 5,
15+
"schedule": [
16+
"at any time"
17+
],
18+
"timezone": "America/Chicago",
19+
"automerge": false,
20+
"platformAutomerge": false,
21+
"minimumReleaseAge": "7 days",
22+
"stabilityDays": 7,
523
"lockFileMaintenance": {
624
"enabled": true
7-
}
25+
},
26+
"packageRules": [
27+
{
28+
"description": "Group GitHub actions together",
29+
"matchManagers": [
30+
"github-actions"
31+
],
32+
"groupName": "github actions",
33+
"matchPackagePatterns": [
34+
"^actions/",
35+
"^github/"
36+
]
37+
},
38+
{
39+
"description": "Group all npm devDependencies",
40+
"matchManagers": [
41+
"npm"
42+
],
43+
"matchDepTypes": [
44+
"devDependencies"
45+
],
46+
"groupName": "npm dev dependencies"
47+
},
48+
{
49+
"description": "Group all Nuxt dependencies together",
50+
"groupName": "nuxt packages",
51+
"matchPackagePatterns": [
52+
"^nuxt$",
53+
"^@nuxt/"
54+
]
55+
},
56+
{
57+
"description": "Group semantic-release packages",
58+
"groupName": "semantic-release",
59+
"matchPackageNames": [
60+
"/^@semantic-release//",
61+
"/^semantic-release$/",
62+
"/^conventional-changelog/"
63+
]
64+
},
65+
{
66+
"description": "Group commitlint packages",
67+
"groupName": "commitlint",
68+
"matchPackageNames": [
69+
"/^@commitlint//",
70+
"/^commitlint$/",
71+
"/^cz-conventional-changelog$/"
72+
]
73+
},
74+
{
75+
"description": "Group Iconify JSON packages",
76+
"groupName": "iconify-json",
77+
"matchPackagePatterns": [
78+
"^@iconify-json/"
79+
]
80+
},
81+
{
82+
"description": "Group markdown tooling",
83+
"groupName": "markdown tools",
84+
"matchPackagePatterns": [
85+
"^markdown-link-check$",
86+
"^markdown-spellcheck$",
87+
"^markdown-table-formatter$",
88+
"^markdownlint-cli2$"
89+
]
90+
},
91+
{
92+
"description": "Group linting tools",
93+
"groupName": "linting",
94+
"matchPackagePatterns": [
95+
"^eslint$",
96+
"^@nuxt/eslint$"
97+
]
98+
},
99+
{
100+
"description": "Group husky (git hooks)",
101+
"groupName": "husky",
102+
"matchPackagePatterns": [
103+
"^husky$"
104+
]
105+
},
106+
{
107+
"description": "Group Vue typecheck",
108+
"groupName": "typecheck",
109+
"matchPackagePatterns": [
110+
"^vue-tsc$"
111+
]
112+
},
113+
{
114+
"description": "Group package manager updates (pnpm)",
115+
"matchManagers": [
116+
"npm"
117+
],
118+
"matchDepTypes": [
119+
"packageManager"
120+
],
121+
"groupName": "pnpm"
122+
},
123+
{
124+
"description": "Major updates - require manual review, don't recreate if closed",
125+
"matchUpdateTypes": [
126+
"major"
127+
],
128+
"automerge": false,
129+
"recreateWhen": "never",
130+
"labels": [
131+
"dependencies",
132+
"breaking"
133+
]
134+
}
135+
]
8136
}

0 commit comments

Comments
 (0)