mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-05 22:56:55 +01:00
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>
53 lines
1.7 KiB
YAML
53 lines
1.7 KiB
YAML
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
|