Skip to content

Ci cd options - #268

Draft
blaemmle wants to merge 7 commits into
correctiv:mainfrom
blaemmle:ci-cd-options
Draft

blaemmle wants to merge 7 commits into
correctiv:mainfrom
blaemmle:ci-cd-options

Conversation

@blaemmle

Copy link
Copy Markdown
Contributor

No description provided.

blaemmle and others added 7 commits September 15, 2026 12:00
- Review APK becomes the asset of a fixed `preview` prerelease instead of
  living inside Pages, so Pages needs no single publisher, no preserved
  binary and no recovery copy.
- Build number is `github.run_number`; only the newest `main` is delivered.
- Second app identity kept, now argued (both apps on one device) and given
  its own name, banded icon and scheme through APP_VARIANT in app.config.js.
- The choice of Actions over EAS is argued with measured cost, and bound
  to the repository staying public.
- Match kept over cloud signing, with the reason (Admin API key).
- Generic Actions hardening moved to RELEASE.md at implementation.
- Structure follows the other records: Context, Decision with numbered
  ### headings, a dated status line, what it retires (ADR 0011, once built).
@JumpLink

Copy link
Copy Markdown
Collaborator

@blaemmle Ich habe dir zwei Commits auf den Branch gelegt und würde gern wissen, was du davon hältst.

28b05796 führt main herein und löst die Konflikte in adr/README.md und adr/decisions.lock.json. Dein Inhalt ist dort unverändert.

9a3e9c39 überarbeitet ADR 0064. Deine Entscheidungen bleiben im Kern stehen: Actions und Fastlane, PR-Builds ohne Secrets, Match mit Deploy-Key, TestFlight statt Ad-hoc. Vereinfacht habe ich die Umsetzung:

  • Die Review-APK liegt als Asset an einem festen Prerelease preview, nicht in Pages. Die Download-Adresse bleibt für jeden Build gleich und funktioniert ohne Login (am 25.09. anonym gemessen). Damit entfallen der gemeinsame Publisher, die APK, die Doku-Deploys überleben muss, und die Kopie zur Wiederherstellung.
  • Die Build-Nummer ist github.run_number. Bei einem Re-Run bleibt sie gleich, man muss also keinen Zähler vergeben oder zurückcommitten.
  • Ausgeliefert wird nur der neueste Stand von main. Bei 174 Merges im letzten Monat halte ich das für eine Review-App für genug. Falls du jeden Merge brauchst, ginge das mit queue: max.
  • Die zweite App-ID bleibt, jetzt mit Begründung: Beide Apps sollen nebeneinander auf einem Gerät laufen. Dazu kommen ein eigener Name, ein Icon mit Band wie bei den Devel-Builds von GNOME und ein eigenes Scheme, alles über APP_VARIANT in app.config.js.
  • Warum Actions statt EAS, steht jetzt mit Zahlen drin: Der kostenlose EAS-Plan hat 15 Builds pro Plattform im Monat, Actions kostet uns nichts. Das gilt ausdrücklich nur, solange das Repo öffentlich ist.
  • Match statt Cloud-Signing ist begründet: Cloud-Signing bräuchte einen API-Key mit Admin-Rolle im CI.
  • Die allgemeine Actions-Härtung (Keychain, gepinnte SHAs, Token-Rechte) wandert bei der Umsetzung in RELEASE.md. Im ADR bleibt, was entschieden ist.
  • Formales: Das Format im Ledger war der Grund für die rote CI. Außerdem trägt die Statuszeile jetzt ein Datum, der Aufbau folgt den anderen Records, und ADR 0011 wird erst mit der Umsetzung gestrichen.

Passt das für dich, oder habe ich etwas vereinfacht, das du bewusst so wolltest? Vor allem bei „nur der neueste Stand“ und beim Prerelease statt Pages bin ich auf deine Sicht gespannt.

@blaemmle

Copy link
Copy Markdown
Contributor Author

@JumpLink Ja sieht gut aus! Durch das ersetzten der Review APKs nach Main build verliert man die option nochmal ältere builds zu testen. Aber ein release pro merge in main ist vermutlich auch etwas zu viel aktuell. Man hat ja noch die eigentlichen releases als Freeze. Dort macht es auch Sinn dem GH Release eine APK und einen iOS Simulator build anzuhängen um gegebenenfalls eine alter Version nochmal zum vergleich testen zu können.

This branch has not been deployed

No deployments
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.

2 participants