Skip to content

feat: auto-upgrade pipeline phase 1 (DRAFT)#28

Draft
KVarga-Flexion wants to merge 1 commit into
flexfrom
feat/auto-upgrade-pipeline-phase-1
Draft

feat: auto-upgrade pipeline phase 1 (DRAFT)#28
KVarga-Flexion wants to merge 1 commit into
flexfrom
feat/auto-upgrade-pipeline-phase-1

Conversation

@KVarga-Flexion
Copy link
Copy Markdown

DRAFT PR for spec .claude/flexpowers/specs/2026-05-19-auto-upgrade-pipeline-design.md (in the infra repo) — Phase 1 of the Open WebUI Auto-Upgrade Pipeline (fork side).

What this implements

Stages 1, 2, 3 of the pipeline plus the cross-repo repository_dispatch schema:

Stage File Role
1 .github/workflows/upstream-sync.yml (extended) Cooldown gate added: 3d patch / 7d minor / pre-release & major blocked, using GitHub Release published_at
2 .github/workflows/sync-pr-automerge.yml Auto-merge of clean-rebase sync PRs from the bot; embeds Upstream-Tag: vX.Y.Z trailer in the squash commit so stage 3 can extract the target
3 .github/workflows/publish-flex-image.yml (rewritten) Push trigger on flex reads Upstream-Tag trailer; ARM64 build to ECR; fires openwebui-version-published repository_dispatch at the infra repo (dev only)
.github/repository-dispatch/openwebui-version-published.schema.json Shared payload contract (mirrored in infra repo)

Status

DRAFT — spec acceptance #2-5 require real-world validation that hasn't happened. Marking ready-for-review is operator work.

Out of scope (per spec)

  • GitHub App / token provisioning — operator one-time work.
  • Modifying cdk-infra-stack.ts:183 imageTag — bot does this on real upgrades.

Implements stages 1, 2, and 3 of the auto-upgrade pipeline plus shared
schema for cross-repo repository_dispatch.

- upstream-sync.yml: adds the cooldown gate between "decide" and
  "create branch". Patch releases soak 3 days, minor 7 days, major and
  pre-releases never auto-PR. Source of truth for release age is the
  GitHub Release's published_at, not git tag taggerdate.
  workflow_dispatch with force=true bypasses.
- sync-pr-automerge.yml: stage 2. Squash-merges sync PRs from the bot
  when the body shows "## Clean rebase" (manual_count==0) and CI is
  green. Embeds an "Upstream-Tag: vX.Y.Z" trailer in the squash commit
  message so stage 3 can extract the target.
- publish-flex-image.yml: stage 3. Adds push trigger on flex that
  reads the Upstream-Tag trailer; builds ARM64 to ECR; fires
  openwebui-version-published repository_dispatch at the infra repo
  (dev only — prod stays manual).
- repository-dispatch/openwebui-version-published.schema.json: shared
  contract mirroring the infra repo's copy.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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.

1 participant