mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-10 02:25:56 +00:00
6f3c436121
A committed release with an unchanged operator-owned containment failure cannot converge through unattended retries. Classify that evidence without weakening the block, and rearm only when the relevant private inputs or public controls change. Change-source: pulse-maintainer
70 lines
2.3 KiB
YAML
70 lines
2.3 KiB
YAML
name: Retry Release Convergence
|
|
run-name: Reconcile release convergence debt
|
|
|
|
# A committed release is never returned to draft because a mutable surface is
|
|
# temporarily unavailable. Re-run current controls, or dispatch them afresh
|
|
# when the failed run predates a repair, so the complete convergence workflow
|
|
# reacquires the global lease and replays every idempotent surface. Successful
|
|
# surfaces are safe to repeat; retrying only failed jobs would bypass the lease.
|
|
on:
|
|
workflow_run:
|
|
workflows:
|
|
- Release Convergence
|
|
types:
|
|
- completed
|
|
branches:
|
|
- main
|
|
schedule:
|
|
# workflow_run delivery is not durable. Reconcile the current stable and
|
|
# preview channel heads hourly so a dropped event cannot strand aliases.
|
|
- cron: '37 * * * *'
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
actions: write
|
|
contents: read
|
|
|
|
concurrency:
|
|
group: retry-release-convergence
|
|
cancel-in-progress: false
|
|
|
|
jobs:
|
|
retry_committed_convergence:
|
|
if: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.conclusion != 'success' }}
|
|
runs-on: ubuntu-24.04
|
|
timeout-minutes: 10
|
|
steps:
|
|
- name: Checkout current reconciliation controls
|
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- name: Reconcile the failed convergence
|
|
env:
|
|
GH_TOKEN: ${{ github.token }}
|
|
PRO_REPOSITORY_TOKEN: ${{ secrets.WORKFLOW_PAT }}
|
|
RUN_ID: ${{ github.event.workflow_run.id }}
|
|
run: >-
|
|
python3 scripts/release_control/reconcile_release_convergence.py
|
|
--repository "${GITHUB_REPOSITORY}"
|
|
--run-id "${RUN_ID}"
|
|
|
|
reconcile_missed_event:
|
|
if: ${{ github.event_name != 'workflow_run' }}
|
|
runs-on: ubuntu-24.04
|
|
timeout-minutes: 10
|
|
steps:
|
|
- name: Checkout current reconciliation controls
|
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- name: Reconcile current channel heads
|
|
env:
|
|
GH_TOKEN: ${{ github.token }}
|
|
PRO_REPOSITORY_TOKEN: ${{ secrets.WORKFLOW_PAT }}
|
|
run: >-
|
|
python3 scripts/release_control/reconcile_release_convergence.py
|
|
--repository "${GITHUB_REPOSITORY}"
|
|
--latest
|