Skip to content

feat(release): do_local_release — Lokal-Release als zweiter Weg neben CI/CD - #88

Merged
daniel-marthaler merged 3 commits into
masterfrom
feat/lokal-release
Aug 29, 2026
Merged

feat(release): do_local_release — Lokal-Release als zweiter Weg neben CI/CD#88
daniel-marthaler merged 3 commits into
masterfrom
feat/lokal-release

Conversation

@daniel-marthaler

Copy link
Copy Markdown
Collaborator

Was

do_local_release in tui-build-logic.sh: Release (Versionsschritt, Release-Commit, Git-Tag, Push), Build, Jar-Staging und Blue-Green-Deploy von der Entwicklermaschine aus, ohne GitHub Actions. Wrapper verdrahten es selbst — plaintext-app bekommt ./build 8 bzw. ./build local-release [1|2|3] [prod|dev-prod] (Plaintext-Gmbh/plaintext-app, Folge-PR).

Warum nicht einfach ./build 56 lokal

  1. Der Push des Release-Commits startet die CI (release-all), die parallel einen zweiten Release gegen dieselben Slots/dasselbe Staging-Jar deployt → Release-Commit trägt [skip-ci] (RELEASE_COMMIT_SUFFIX, im CI-Lauf leer, do_release sonst unverändert).
  2. do_release macht git add -A → Vorflug verlangt master, sauberen Arbeitsbaum, origin nachgezogen (fast-forward).
  3. Lokal fehlen typischerweise die Reposilite-Zugangsdaten → ohne server-id aus distributionManagement in ~/.m2/settings.xml nur mvn package statt deploy (sonst Tag ohne Artefakt).
  4. Kein Tag ohne Deploy: NAS-Erreichbarkeit und aktive CI-Läufe auf master (gh run list) werden vor dem Tag geprüft.
  5. Scheitert der Push des Release-Commits, werden lokaler Commit und Tag zurückgenommen.

Trockenlauf: LOKAL_RELEASE_NUR_VORFLUG=true ./build 8 — auf plaintext-app/master durchgespielt (fetch ✓, CI ✓, Maven-Warnung ✓, NAS ✓, Plan 2.1697.0 → 2.1698.0).

Tests

  • ./test-lokal-release.sh (neu): Betreffzeile mit Suffix, Reihenfolge Arbeitsbaum/NAS/Suffix vor do_release, PROD-Deploy danach, Suffix wieder geleert, Rückbau prüft origin-Zugehörigkeit.
  • ./test-release-reihenfolge.sh, ./test-versionsschritt.sh: unverändert grün.
  • shellcheck: keine Warnungen im neuen Code.

🤖 Generated with Claude Code

https://claude.ai/code/session_01VWHcTFemVTFUGJi7afUDzA

daniel-marthaler and others added 3 commits August 29, 2026 02:05
… CI/CD

Release (Versionsschritt, Commit, Tag, Push), Build, Jar-Staging und
Blue-Green-Deploy von der Entwicklermaschine aus, ohne GitHub Actions.
Wrapper verdrahten es selbst (plaintext-app: ./build 8 / ./build local-release).

Sicherungen, die ./build 56 lokal nicht hat:
- Release-Commit mit [skip-ci] (RELEASE_COMMIT_SUFFIX), sonst startet der
  Push die CI und deployt parallel einen zweiten Release.
- Vorflug VOR dem Tag: master, sauberer Arbeitsbaum, origin nachgezogen,
  kein aktiver CI-Lauf auf master (gh run list), NAS erreichbar.
- Ohne Reposilite-Zugangsdaten nur mvn package statt deploy (sonst Tag
  ohne Artefakt).
- Scheitert der Push, werden lokaler Commit und Tag zurueckgenommen.
- Trockenlauf: LOKAL_RELEASE_NUR_VORFLUG=true.

test-lokal-release.sh bewacht Betreffzeile, Reihenfolge und Rueckbau.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VWHcTFemVTFUGJi7afUDzA
…gs blockierten den Vorflug)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VWHcTFemVTFUGJi7afUDzA
…I-Sperre in deploy_to_dev/prod

Bisher hatte nur ./build 8 die Sicherungen; ./build 3/5/56/7 liefen lokal weiter
ungeschuetzt (Push loeste die CI aus, git add -A nahm alles mit). Jetzt: lokal_vorflug
(Branch, Arbeitsbaum, origin ff, gh run list, Maven-Zugangsdaten) in do_release, sobald
CI != true; Release-Commit lokal per Default [skip-ci]; deploy_to_dev/prod pruefen lokal
auf laufende CI-Rollouts. LOKAL_RELEASE_MIT_AENDERUNGEN=true erlaubt das alte Verhalten.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VWHcTFemVTFUGJi7afUDzA
@daniel-marthaler
daniel-marthaler merged commit 3d54d4c into master Aug 29, 2026
1 check passed
@daniel-marthaler
daniel-marthaler deleted the feat/lokal-release branch August 29, 2026 00:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant