mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-05 14:46:55 +01:00
Promote-knappen: udrulning med eet klik via workflow_dispatch
Merge til main er kvalitetsgaten; promote er udrulningsgaten - og udrulningsgaten skal ikke kraeve en git-klon og fire kommandoer, isaer ikke fra en strandkant. Actions -> Promote to stable -> Run workflow: - Naegter at koere hvis stable er divergeret fra main (aldrig force; divergens er en finding) - Idempotent: intet at promovere = pæn besked, ingen fejl - Skriver job-summary med de udrullede commits - Kun write-adgang kan dispatche; ved kommende stable-ruleset skal GitHub Actions paa bypass-listen CONSUMPTION.md: de tre ligevaerdige promote-former dokumenteret (knappen, een-linjeren, den eksplicitte form). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
54623e1e88
commit
0e3556fdc0
2 changed files with 69 additions and 1 deletions
53
.github/workflows/promote-stable.yml
vendored
Normal file
53
.github/workflows/promote-stable.yml
vendored
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
name: Promote to stable
|
||||
|
||||
# Udrulningsknappen: fast-forwarder stable-kanalen til main med eet klik
|
||||
# (Actions -> Promote to stable -> Run workflow). Manuel og bevidst -
|
||||
# merge til main er IKKE deploy; dette workflow ER deployet.
|
||||
#
|
||||
# Sikkerhed: kun brugere med write-adgang kan dispatche. Nægter at køre,
|
||||
# hvis stable er divergeret fra main (aldrig force). Hvis stable-branchen
|
||||
# beskyttes af et ruleset, skal GitHub Actions (eller dette workflow) på
|
||||
# rulesettets bypass-liste, for at push'et kan gennemføres.
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
promote:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: main
|
||||
|
||||
- name: Fast-forward stable to main
|
||||
run: |
|
||||
git fetch origin stable
|
||||
|
||||
if ! git merge-base --is-ancestor origin/stable origin/main; then
|
||||
echo "::error::stable er ikke en forfader til main - kanalen er divergeret. Promotion afbrudt; undersøg manuelt (aldrig force)."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
OLD=$(git rev-parse origin/stable)
|
||||
NEW=$(git rev-parse origin/main)
|
||||
|
||||
if [ "$OLD" = "$NEW" ]; then
|
||||
echo "## Intet at promovere" >> "$GITHUB_STEP_SUMMARY"
|
||||
echo "stable står allerede på main ($(git rev-parse --short "$NEW"))." >> "$GITHUB_STEP_SUMMARY"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
{
|
||||
echo "## Promoveret: $(git rev-parse --short "$OLD") → $(git rev-parse --short "$NEW")"
|
||||
echo ""
|
||||
echo "Commits udrullet til alle maskiner:"
|
||||
git log --format='- `%h` %s' "$OLD".."$NEW"
|
||||
} >> "$GITHUB_STEP_SUMMARY"
|
||||
|
||||
git push origin origin/main:stable
|
||||
Loading…
Add table
Add a link
Reference in a new issue