mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-10-19 18:44:53 +00:00
Add mobile impact gate to release dispatch
This commit is contained in:
parent
1fad0948d4
commit
155023d86a
10 changed files with 395 additions and 38 deletions
22
.github/workflows/create-release.yml
vendored
22
.github/workflows/create-release.yml
vendored
|
|
@ -47,6 +47,14 @@ on:
|
|||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
mobile_release_decision:
|
||||
description: 'Required mobile impact decision: no-mobile-impact, existing-mobile-build-compatible, mobile-candidate-uploaded, or mobile-candidate-required'
|
||||
required: true
|
||||
type: string
|
||||
mobile_release_evidence:
|
||||
description: 'Evidence for existing-mobile-build-compatible or mobile-candidate-uploaded decisions'
|
||||
required: false
|
||||
type: string
|
||||
|
||||
concurrency:
|
||||
group: release-${{ github.event.inputs.version || github.ref || github.run_id }}
|
||||
|
|
@ -113,6 +121,7 @@ jobs:
|
|||
VERSION
|
||||
docs/release-control/control_plane.json
|
||||
scripts/release_control/control_plane.py
|
||||
scripts/release_control/mobile_release_gate.py
|
||||
scripts/release_control/repo_file_io.py
|
||||
|
||||
- name: Resolve required release branch
|
||||
|
|
@ -138,6 +147,19 @@ jobs:
|
|||
fi
|
||||
echo "[OK] VERSION file matches requested version ($REQUESTED_VERSION)"
|
||||
|
||||
- name: Validate mobile release decision
|
||||
if: ${{ steps.extract.outputs.historical_asset_backfill_only != 'true' }}
|
||||
env:
|
||||
MOBILE_RELEASE_DECISION: ${{ github.event.inputs.mobile_release_decision }}
|
||||
MOBILE_RELEASE_EVIDENCE: ${{ github.event.inputs.mobile_release_evidence }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
python3 scripts/release_control/mobile_release_gate.py \
|
||||
--version "${{ steps.extract.outputs.version }}" \
|
||||
--decision "${MOBILE_RELEASE_DECISION}" \
|
||||
--evidence "${MOBILE_RELEASE_EVIDENCE}" \
|
||||
--github-annotations
|
||||
|
||||
- name: Validate promotion policy
|
||||
if: ${{ steps.extract.outputs.historical_asset_backfill_only != 'true' }}
|
||||
id: promotion
|
||||
|
|
|
|||
28
.github/workflows/release-dry-run.yml
vendored
28
.github/workflows/release-dry-run.yml
vendored
|
|
@ -44,6 +44,14 @@ on:
|
|||
description: 'Optional note/reason for the dry run'
|
||||
required: false
|
||||
type: string
|
||||
mobile_release_decision:
|
||||
description: 'Mobile impact decision: no-mobile-impact, existing-mobile-build-compatible, mobile-candidate-uploaded, or mobile-candidate-required'
|
||||
required: false
|
||||
type: string
|
||||
mobile_release_evidence:
|
||||
description: 'Evidence for existing-mobile-build-compatible or mobile-candidate-uploaded decisions'
|
||||
required: false
|
||||
type: string
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
|
@ -159,6 +167,26 @@ jobs:
|
|||
|
||||
echo "[OK] Rehearsal metadata validated for ${TAG}"
|
||||
|
||||
- name: Validate mobile release decision
|
||||
id: mobile_release
|
||||
env:
|
||||
EVENT_NAME: ${{ github.event_name }}
|
||||
MOBILE_RELEASE_DECISION: ${{ inputs.mobile_release_decision }}
|
||||
MOBILE_RELEASE_EVIDENCE: ${{ inputs.mobile_release_evidence }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
DECISION="${MOBILE_RELEASE_DECISION:-}"
|
||||
EVIDENCE="${MOBILE_RELEASE_EVIDENCE:-}"
|
||||
if [ -z "${DECISION}" ] && [ "${EVENT_NAME}" = "schedule" ]; then
|
||||
DECISION="no-mobile-impact"
|
||||
EVIDENCE="Scheduled release dry-run watchdog; no mobile release packet is being dispatched."
|
||||
fi
|
||||
python3 scripts/release_control/mobile_release_gate.py \
|
||||
--version "${{ steps.rehearsal.outputs.version }}" \
|
||||
--decision "${DECISION}" \
|
||||
--evidence "${EVIDENCE}" \
|
||||
--github-annotations
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue