Skip to content

Commit 63c6ef1

Browse files
tode-rlclaude
andcommitted
chore(stlc): run Promote SDKs on a daily schedule
Promote is a git-only fast-forward reconciliation between staging and production main, not a release itself (release-please owns the actual version bump/publish gate). Running it only on manual dispatch let unpromoted staging content sit indefinitely, so an unrelated direct push to production main (a docs PR) forked the trunks and blocked back-sync until a maintainer manually reconciled it. A daily run keeps that window small; workflow_dispatch remains for an eager promote. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FdU1YEnz7LjqjCiTP8cp6K
1 parent 38d46b4 commit 63c6ef1

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

.github/workflows/stlc-promote.yml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,15 @@ name: Promote SDKs
22

33
# Promote staging to production by fast-forwarding production main up to staging,
44
# preserving SHAs so the trunks stay identical and linear (nothing to heal on the
5-
# next stlc build). Manual dispatch by design: a maintainer promotes the accumulated
6-
# batch to cut a release; release-please then opens its version PR on production.
5+
# next stlc build). This is a git-only reconciliation, not a release: release-please
6+
# owns the actual version bump/publish gate on production. Runs daily so unpromoted
7+
# staging content can't sit long enough to fork against an independent production
8+
# push; workflow_dispatch remains for an eager promote. The fast-forward-only guard
9+
# below makes every run a safe no-op when there's nothing to promote.
710
on:
11+
schedule:
12+
# 8am PT (15:00 UTC); shifts to 7am during PST since GitHub cron doesn't track DST.
13+
- cron: '0 15 * * *'
814
workflow_dispatch: {}
915

1016
permissions:
@@ -18,6 +24,9 @@ jobs:
1824
# Optional gate: add required reviewers to this environment to approve each
1925
# promote. With none it only scopes secrets and adds no gate. Remove if unused.
2026
environment: production
27+
concurrency:
28+
group: stlc-promote
29+
cancel-in-progress: true
2130
env:
2231
PRODUCTION_REPO: runloopai/api-client-python
2332
GH_TOKEN: ${{ secrets.PRODUCTION_REPO_TOKEN }}

0 commit comments

Comments
 (0)