diff --git a/.github/workflows/validate-renovate-config.yaml b/.github/workflows/validate-renovate-config.yaml new file mode 100644 index 00000000..a5feb8c6 --- /dev/null +++ b/.github/workflows/validate-renovate-config.yaml @@ -0,0 +1,19 @@ +name: validate renovate config + +permissions: + contents: read + +on: + pull_request: + branches: + - main + +jobs: + validate-renovate-config: + runs-on: ubuntu-24.04 + steps: + - name: Checkout repository + uses: actions/checkout@v6 + + - name: Validate Renovate config + uses: suzuki-shunsuke/github-action-renovate-config-validator@v2.0.0 diff --git a/.gitignore b/.gitignore index a5c9d15f..b74489d7 100644 --- a/.gitignore +++ b/.gitignore @@ -290,4 +290,6 @@ cython_debug/ .idea/ # VS Code -.vscode/ \ No newline at end of file +.vscode/ + +.DS_Store diff --git a/renovate.json5 b/renovate.json5 new file mode 100644 index 00000000..616f7b69 --- /dev/null +++ b/renovate.json5 @@ -0,0 +1,36 @@ +// configuration options: https://docs.renovatebot.com/configuration-options/ +// list of all presets: https://docs.renovatebot.com/presets-default/ +{ + $schema: 'https://docs.renovatebot.com/renovate-schema.json', + extends: ['config:recommended', ':automergeRequireAllStatusChecks'], + dependencyDashboard: true, + // let it fly for now, we've got a lot to catch up on + // schedule: [ + // "0 * * * *" + // ], + timezone: 'UTC', + // Always squash PRs when automerging + automergeType: 'pr', + automergeStrategy: 'squash', + packageRules: [ + { + description: 'Group and automerge patch updates after CI passes', + matchUpdateTypes: ['patch'], + automerge: true, + groupName: 'patch-updates', + }, + { + description: 'Create PRs for minor updates without automerge', + matchUpdateTypes: ['minor'], + automerge: false, + }, + { + description: 'Require dashboard approval for major updates', + matchUpdateTypes: ['major'], + dependencyDashboardApproval: true, + automerge: false, + }, + ], + prConcurrentLimit: 3, + rebaseWhen: 'auto', +}