From 8645383e14f8edd57fb3b94c8338da19d65d5135 Mon Sep 17 00:00:00 2001 From: Anthony Rey Date: Thu, 11 Jun 2026 08:44:17 +0200 Subject: [PATCH] chore: add Renovate config Add renovate.json adapted for GitHub + Mend: - automerge patch/minor + weekly lockfile maintenance (major stays manual) - 3-day minimum release age and strict internal checks for npm/pnpm deps - group node and pnpm updates so mise.toml and the workflow bump together Annotate node-version in build.yml so Renovate keeps it in sync with mise.toml. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/build.yml | 19 +++++++++++ renovate.json | 63 +++++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 renovate.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6c9e635..68af02a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,6 +17,7 @@ jobs: - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: + # renovate: datasource=node-version depName=node node-version: 24.14.1 cache: pnpm - run: pnpm -r install --frozen-lockfile @@ -46,6 +47,7 @@ jobs: - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: + # renovate: datasource=node-version depName=node node-version: 24.14.1 cache: pnpm registry-url: https://registry.npmjs.org @@ -54,3 +56,20 @@ jobs: with: name: build-artifacts - run: pnpm -r publish --access public --no-git-checks + + status-checks: + name: status-checks + needs: [build] + permissions: + contents: none + if: always() + runs-on: ubuntu-latest + timeout-minutes: 5 + steps: + - name: Validation Status checks + run: | + echo '${{ toJSON(needs) }}' + if [[ (('skipped' == '${{ needs.build.result }}') || ('success' == '${{ needs.build.result }}')) ]]; then + exit 0 + fi + exit 1 diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..ebbb113 --- /dev/null +++ b/renovate.json @@ -0,0 +1,63 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:recommended", + ":dependencyDashboard", + ":maintainLockFilesWeekly", + ":automergeMinor", + ":automergePr", + ":automergeRequireAllStatusChecks" + ], + "timezone": "Europe/Paris", + "prHourlyLimit": 1, + "prCreation": "immediate", + "rangeStrategy": "pin", + "minimumReleaseAge": "3 days", + "internalChecksFilter": "strict", + "lockFileMaintenance": { + "enabled": true, + "automerge": true, + "minimumReleaseAgeBehaviour": "timestamp-optional" + }, + "pin": { + "minimumReleaseAgeBehaviour": "timestamp-optional" + }, + "packageRules": [ + { + "matchDatasources": ["github-releases"], + "enabled": true + }, + { + "matchDepNames": ["node"], + "groupName": "node" + }, + { + "matchDepNames": ["pnpm"], + "groupName": "pnpm" + }, + { + "matchDepTypes": ["dependencies"], + "rangeStrategy": "replace" + }, + { + "matchDepTypes": ["peerDependencies"], + "rangeStrategy": "widen" + } + ], + "customManagers": [ + { + "customType": "regex", + "managerFilePatterns": [ + ".github/workflows/*.{yml,yaml}", + ".gitlab-ci.{yml,yaml}", + "ci/*.{yml,yaml}", + "**/.gitlab-ci.{yml,yaml}", + "**/ci/*.{yml,yaml}" + ], + "matchStrings": [ + "# renovate: datasource=(?[a-zA-Z0-9-._]+?) depName=(?[^\\s]+?)(?: (?:packageName)=(?[^\\s]+?))?(?: versioning=(?[^\\s]+?))?(?: extractVersion=(?[^\\s]+?))?(?: registryUrl=(?[^\\s]+?))?\\s+[A-Za-z0-9_]+?_VERSION\\s*:\\s*[\"']?(?.+?)[\"']?\\s", + "# renovate: datasource=(?\\S+) depName=(?\\S+)(?: versioning=(?\\S+))?\\s+node-version:\\s*[\"']?(?[^\\s\"']+)" + ] + } + ] +}