ci(renovate): update dependencies and release weekly #29
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "ci/renovate"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
forgejoplatform, forge-side automerge) and keeps the existing tag-driven release workflow as the publisher.Changes
renovate.json: managersmix,dockerfile,github-actionsand a regex manager for the annotatedesbuild/tailwindversions inconfig/config.exs; automerge for patch and minor (squash, 3 day release age); majors stay manual. Thehexpm/elixirtoolchain is excluded: it moves with.tool-versions, CI cache keys and PLTs. The Debian runtime tag (trixie-YYYYMMDD-slim) has a regex versioning so the date orders and the release (trixie) never changes. The helm repo's workaround for this forge's 404 on branch statuses of slash-named branches (ignoreTests,statusCheckWhen) is included. Renovate does not touch the version..github/workflows/renovate.yml: daily and manual run withRENOVATE_TOKENandRENOVATE_GITHUB_COM_TOKEN.scripts/propose-release.shand.github/workflows/weekly-release.yml: every Monday, if commits since the latestx.y.ztag changed shipped files (what theContainerfilecopies:lib,priv,assets,config,mix.exs,mix.lock, plus theContainerfile; notconfig/dev.exs,config/test.exs,priv/repo/seeds.exs), open achore(release): bump version to x.y.zPR (those commits listed) and set it to merge when the required checks pass. The bump follows the conventional commits: breaking (!orBREAKING CHANGE:) raises the major,featthe minor, anything else (dependency updates, fixes, performance) the patch. Tests, docs, CI, scripts and tooling changes never cause a release. No shipped change, an existing bump branch, or amix.exsalready ahead of the latest tag: do nothing.scripts/tag-release.shand.github/workflows/tag.yml: on every push tomain, tag the commit with themix.exsversion if it is untagged and higher than every release;release.ymlthen publishes. Pushed withRENOVATE_TOKEN(a real account), because the job token may not start the tag-triggered workflow..github/workflows/development.yml: ignorechore/deps-*andchore/release-*branches so automation does not take the shareddevelopmenttag.config/config.exs:# renovate:annotations on the two tool versions.Verification
renovate-config-validator --strict renovate.jsonpasses (Renovate 44.167.5, the pinned image).--platform=local --dry-run=lookupwith the config: extracts 31 Hex dependencies, the Debian image, the actions and both annotated tools; the toolchain image isdisabled; finds real updates (phoenix,phoenix_live_view,banditpatch,ecto_sqlite3minor,esbuildpatch). GitHub-hosted lookups reportgithub-token-requiredlocally only because no token was given; the workflow supplies one. Debian regex checked against Docker Hub (trixie-20261005-slimis the newest, so no update is correct).propose-release.shagainst throwaway remotes with a stubbedcurl: docs-only, tests-only, CI/scripts-only and dev-only config and seeds changes leave the release standing; afeatthat touches no shipped file does too; amix.lockdependency update, a fix, a perf change and aContainerfilechange propose a patch bump;featinliborpriva minor;fix!:and aBREAKING CHANGE:footer a major; deps plus feat plus fix a minor. A full run pushes the bumped branch with the right commit and makes exactly two API calls (create PR, merge when checks succeed); a second run does not duplicate;1.9.0proposes1.10.0; a version ahead of the tag stays pending; dry runs push nothing.tag-release.shagainst a throwaway remote: first version tagged; already tagged is a no-op; a lower version is refused;1.10.0ranks above1.1.0; no token fails. This found and fixed apipefailbug when no release tag exists.shellcheck -x,actionlint,mix format --check-formatted,mix compile --warnings-as-errorsclean.mix.lockregeneration, the forge honouringmerge_when_checks_succeedfor the bump PR, and the tag-triggered release fromtag.yml.ci(renovate): update dependencies and cut releasesto ci(renovate): update dependencies and release weekly