From aed0d637030910ca5564cce4dd1913a0cfba4d55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bot=20of=20Thomas=20G=C3=BCttler?= Date: Fri, 5 Jun 2026 22:42:47 +0200 Subject: [PATCH] feat: track Flutter version in Renovate via Docker datasource (#452) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary - Adds a custom Renovate manager that reads the pinned Flutter version from `.fvmrc` - Uses `ghcr.io/cirruslabs/flutter` as the Docker datasource so Renovate only proposes a bump when the corresponding image tag exists in the registry - The CI pipeline (`ci/main.go`) already derives the Docker image tag from `.fvmrc` at runtime — `.fvmrc` is the single source of truth; no other files need grouping ## How it works Renovate checks `ghcr.io/cirruslabs/flutter` for available tags. If `3.44.1` doesn't exist yet, no PR is opened. Once the image is published, Renovate opens a PR to bump `.fvmrc` — the only file that needs to change. ## Verification - `renovate.json` schema validated - Reviewed `ci/main.go`: `FlutterVersion` is read exclusively from `.fvmrc`; no hardcoded version strings elsewhere require additional grouping rules Closes #447 Co-authored-by: Thomas SharedInbox Reviewed-on: https://codeberg.org/guettli/sharedinbox/pulls/452 --- renovate.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/renovate.json b/renovate.json index 11605c6..98b1340 100644 --- a/renovate.json +++ b/renovate.json @@ -19,6 +19,14 @@ } ], "customManagers": [ + { + "customType": "regex", + "fileMatch": ["^\\.fvmrc$"], + "matchStrings": ["\"flutter\":\\s*\"(?[^\"]+)\""], + "depNameTemplate": "ghcr.io/cirruslabs/flutter", + "datasourceTemplate": "docker", + "versioningTemplate": "semver" + }, { "customType": "regex", "fileMatch": ["^\\.forgejo/Dockerfile$"],