Skip to content

ci: add central Renovate runner + renovate secrets env#33

Merged
chaudharydeepanshu merged 1 commit into
mainfrom
ci/renovate-runner
Jul 24, 2026
Merged

ci: add central Renovate runner + renovate secrets env#33
chaudharydeepanshu merged 1 commit into
mainfrom
ci/renovate-runner

Conversation

@chaudharydeepanshu

Copy link
Copy Markdown
Contributor

First cut of the Renovate migration (design: _playground/PLAN-renovate-migration.md).

What

  • .github/workflows/renovate.yml — self-hosted Renovate, runs from whuppi/ci, scans consumer repos via RENOVATE_REPOSITORIES. SHA-pinned action + renovate 43.279.0. workflow_dispatch only + dry-run default, environment: renovate for the token. Pointed at whuppi/pdf_manipulator first.
  • deploy/.deploy/secrets.sh — accepts a renovate env and auto-creates the GitHub environment (idempotent PUT), so RENOVATE_TOKEN is managed the same Bitwarden-backed way as RELEASE_TOKEN. secrets.json.example documents it.

Why: dependabot never scans composite action.yml (#6704); Renovate does. It keeps every whuppi/ci ref uniform (workflow + composite) and bumps third-party actions frozen in composites — we already hit actions/cache@v5.0.5 (a major behind, never bumped).

Token is already stored on the renovate env (Contents + Workflows + PRs + Issues: write, all whuppi repos).

After merge: dispatch → dryRun=full → read the log (should extract actions/cache from the composites, whuppi/ci refs uniformly, pub, fvmrc, no PRs opened). Then merge pdf#186 (config), flip dryRun=live, enable the schedule, widen the repo list, remove dependabot.

No CHANGELOG entry — internal workflow, not a consumed artifact, so no release.

@chaudharydeepanshu
chaudharydeepanshu requested a review from a team as a code owner July 24, 2026 01:27
@slopfairy

This comment has been minimized.

slopfairy

This comment was marked as outdated.

Reusable workflow (workflow_call), same shape as upgrade-check.yml: each
consumer calls it on a schedule and it runs against the CALLING repo
(github.repository) — no hardcoded repo list. Renovate reads composite
action.yml (dependabot-core#6704 blind spot), keeping whuppi/ci refs uniform
and bumping third-party actions hidden in composites.

secrets.sh gains an 'org' scope so RENOVATE_TOKEN is stored as a whuppi org
secret (visible to every repo) — a reusable workflow runs in the consumer's
context and can't read a whuppi/ci env secret. GITHUB_TOKEN can't write
.github/workflows/, which is why Renovate needs the PAT.
@slopfairy

This comment has been minimized.

@slopfairy slopfairy left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tip

Approved — the switch to workflow_call resolves both prior issues cleanly

Since the last review the design pivoted from workflow_dispatch to workflow_call with a boolean dryRun input. The ternary is now correct (true && 'full' || '''full', false && 'full' || ''''), and without a checkout step there is no persist-credentials surface. The workflow is tight.

🟡 Suggestions — optional, take it or leave it

  1. deploy/.deploy/secrets.sh:243upload_env does not handle the org env case (see inline). If someone runs ./secrets.sh upload org, it would create a repo environment literally called "org" and push secrets there instead of to the org level. Either add org support in upload_env or reject org in cmd_upload with a clear message.

Checked

  • workflow_call with dryRun: true default — safe default, callers opt into live
  • No checkout step — the Renovate action clones via the PAT; no GITHUB_TOKEN in git config
  • permissions: {} at top level, job-scoped contents: write / pull-requests: write / issues: write are explicit
  • Action pinned to full SHA (3064367...) with version comment, renovate-version pinned to 43.279.0
  • github.repository used in RENOVATE_REPOSITORIES — generic, never hardcoded
  • secrets.sh org handling in cmd_set and cmd_rm uses correct --org / --visibility all flags
  • secrets.json.example updated consistently

Note: the PR body still describes the old workflow_dispatch design — worth updating before merge so it matches what ships.

@chaudharydeepanshu
chaudharydeepanshu merged commit bd10d2e into main Jul 24, 2026
5 checks passed
@chaudharydeepanshu
chaudharydeepanshu deleted the ci/renovate-runner branch July 24, 2026 02:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants