From 7f5e0603de6f1b940e1f59bb54ec2df58dc088ca Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Sat, 11 Jul 2026 21:21:17 -0400 Subject: [PATCH] ci(renovate): pre-merge CI for renovate PRs + group FE toolchain MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ci.yml: add pull_request trigger (base dev) so renovate/* PRs get validated before merge; dev→main flow unchanged (base main), no duplicate runs. renovate.json: group vite/vitest/plugin-vue/happy-dom/@vue-test-utils into one PR (version-coupled). Co-Authored-By: Claude Opus 4.8 (1M context) --- .forgejo/workflows/ci.yml | 13 +++++++++---- renovate.json | 13 +++++++++++++ 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index ec1dcbf..82f8677 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -9,10 +9,15 @@ name: CI on: push: branches: [dev, main] - # pull_request trigger intentionally absent — with branches: [dev, main] - # above, every PR commit already fires CI via the push event on dev. Adding - # pull_request would duplicate runs on dev→main PRs. FC has no fork PRs - # (single-operator Forgejo repo) so push coverage is complete. + # Renovate opens PRs from `renovate/*` branches into `dev`. Those branches + # never push to dev/main, so the push trigger above gives them NO pre-merge + # CI — a bump could only be validated after it was already merged. This + # pull_request trigger (base `dev` only) validates Renovate PRs before merge. + # It deliberately does NOT fire on dev→main PRs (base `main`), which still + # rely on the dev push run — so no duplicate runs. FC has no fork PRs + # (single-operator Forgejo repo), so secrets-on-PR is not a concern. + pull_request: + branches: [dev] jobs: # Fast-fail lint lane. ruff is pre-installed in the ci-python image, so diff --git a/renovate.json b/renovate.json index 5db72dd..6275124 100644 --- a/renovate.json +++ b/renovate.json @@ -2,5 +2,18 @@ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ "config:recommended" + ], + "packageRules": [ + { + "description": "Bundle the interlocking frontend build/test toolchain into ONE PR. vite, vitest, @vitejs/plugin-vue, happy-dom and @vue/test-utils are version-coupled — a lone major bump red-fails the build/tests until its peers land, so they must move together.", + "matchPackageNames": [ + "vite", + "vitest", + "@vitejs/plugin-vue", + "happy-dom", + "@vue/test-utils" + ], + "groupName": "frontend build/test toolchain" + } ] }