Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/handbook-build-check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,8 @@ jobs:
set -euo pipefail
bash scripts/assemble-handbook-screenshots.sh /tmp/handbook-shots
count=$(ls -1 /tmp/handbook-shots/*.png | wc -l | tr -d ' ')
if [ "$count" != "279" ]; then
echo "expected 279 screenshots, got $count" >&2
if [ "$count" != "278" ]; then
echo "expected 278 screenshots, got $count" >&2
exit 1
fi

Expand Down Expand Up @@ -173,7 +173,7 @@ jobs:
exit 1
fi

# Screenshots dir must contain all 279 PNGs assembled from Goldens.
# Screenshots dir must contain all 278 PNGs assembled from Goldens.
# Hit one of them through the auth gate to verify wiring end-to-end.
# Mix of the original 01-61 range and the 62-269 batch (every Golden
# baseline) so a regression in either half surfaces here.
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/handbook-deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,4 @@ jobs:
DEPLOY_SSH_KNOWN_HOSTS: ${{ secrets.DEPLOY_PRD_SSH_KNOWN_HOSTS }}
DEPLOY_USER: ${{ secrets.DEPLOY_PRD_USER }}
DEPLOY_HOST: ${{ secrets.DEPLOY_PRD_HOST }}
HANDBOOK_API_CHECKOUT_SSH_KEY: ${{ secrets.HANDBOOK_API_CHECKOUT_SSH_KEY }}
27 changes: 18 additions & 9 deletions .github/workflows/handbook.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ on:
required: true
DEPLOY_HOST:
required: true
HANDBOOK_API_CHECKOUT_SSH_KEY:
required: true

# Reusable workflows do NOT inherit `permissions` from the caller — GITHUB_TOKEN
# scopes are resolved per-workflow. Mirror the `contents: read` floor that both
Expand Down Expand Up @@ -84,19 +86,26 @@ jobs:
# changes in the api repo only flow in after such a push/dispatch in
# this repo. There is NO auto-dispatch from the api repo. The api ref
# stays `develop` regardless of the handbook's own deploy branch.
- name: Require mail-preview source checkout key
env:
HANDBOOK_API_CHECKOUT_SSH_KEY: ${{ secrets.HANDBOOK_API_CHECKOUT_SSH_KEY }}
run: |
set -euo pipefail
if [ -z "${HANDBOOK_API_CHECKOUT_SSH_KEY}" ]; then
echo "::error::HANDBOOK_API_CHECKOUT_SSH_KEY is empty — set the repo secret (read-only deploy key for the mail-preview source)."
exit 1
fi

- name: Check out DFXswiss/api at develop into _api-checkout/
uses: actions/checkout@v4
with:
# DFXswiss/api is a PUBLIC repo, so the runner's default GITHUB_TOKEN
# is sufficient to clone it — no cross-repo PAT setup needed. If the
# api repo is ever flipped to private, this step will start failing
# with HTTP 404 on checkout; the fix is then to add a PAT secret on
# the realunit-app repo and pass it through as `token:` here (and
# through the secrets: block of this reusable workflow + the
# handbook-deploy.yaml caller).
# Cross-org clone: the default GITHUB_TOKEN cannot read DFXswiss/api.
# HANDBOOK_API_CHECKOUT_SSH_KEY is a read-only deploy key on that repo.
repository: DFXswiss/api
ref: develop
path: _api-checkout
ssh-key: ${{ secrets.HANDBOOK_API_CHECKOUT_SSH_KEY }}
persist-credentials: false

- name: Set up Node.js for mail-preview generator
uses: actions/setup-node@v4
Expand Down Expand Up @@ -319,13 +328,13 @@ jobs:
- name: Stage web e2e baselines from web repo
env:
WEB_DIR: _web-checkout
# RealUnitCH/web commits 22 Playwright visual baselines under
# RealUnitCH/web commits 36 Playwright visual baselines under
# tests/__screenshots__/{desktop-chromium,tablet-chromium,mobile-safari}/.
# `-ne` below fails the build on ANY drift (add OR remove) so a change
# to the committed set upstream requires an explicit bump here AND a
# matching card edit in docs/handbook/de/index.html (#spec-web) in the
# SAME change — same guard rationale as the api steps above.
EXPECTED_WEB_BASELINE_COUNT: 22
EXPECTED_WEB_BASELINE_COUNT: 36
run: |
set -euo pipefail

Expand Down
7 changes: 3 additions & 4 deletions assets/languages/strings_de.arb
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,6 @@
"buyBackToMain": "Zurück zum Hauptbereich",
"buyMinAmount": "Mindestbetrag: ${amount} ${currency}",
"buyPaymentConfirm": "Jetzt verbindlich kaufen",
"buyPaymentConfirmFailed": "Es gibt ein technisches Problem. Bitte versuchen Sie es später erneut. Falls der Fehler weiterhin besteht, kontaktieren Sie unseren Support.",
"buyPaymentConfirmFailedAktionariat": "Es gibt ein technisches Problem. Bitte überprüfen Sie Ihr E-Mail-Postfach, möglicherweise fehlt noch eine Bestätigung Ihrer Blockchain-Adresse. Andernfalls versuchen Sie es später erneut. Falls der Fehler weiterhin besteht, kontaktieren Sie unseren Support.",
"buyPaymentConfirmFailedAmountTooLow": "Der Betrag liegt unter dem Mindestbetrag für den Kauf. Bitte erhöhen Sie den Betrag und versuchen Sie es erneut.",
"buyPaymentDetailsTitle": "Zahlungsdetails",
"buyPaymentInstructionEmail": "Bitte überweisen Sie den Kaufbetrag mittels Banktransaktion. Die folgende Zahlungsanweisung haben wir Ihnen soeben auch per E-Mail zugestellt.",
"buyPaymentPurposeHint": "Hinweis: Der Verwendungszweck ist wichtig! Vergessen Sie nicht, ihn als Zahlungsmitteilung zu erfassen.",
Expand Down Expand Up @@ -286,6 +283,8 @@
"registerEmailVerificationTitle": "Willkommen zurück!",
"registerPhoneNumberInvalid": "Telefonnummer ist erforderlich",
"registerPhoneNumberOnlyDigits": "Nur Zahlen sind erlaubt",
"registerPhoneNumberPrefixFormat": "Vorwahl muss aus 1 bis 3 Ziffern bestehen",
"registerPhoneNumberPrefixInvalid": "Vorwahl ist erforderlich",
"registrationFailed": "Registrierung fehlgeschlagen:\n${message}",
"registrationForwardingFailed": "Registrierung angenommen, aber die Weiterleitung an die Gesellschaft ist verzögert. Wir versuchen es automatisch erneut.",
"registrationRejected": "Der Server hat Ihre Registrierung abgelehnt:\n${reason}\nIhre Daten wurden nicht gespeichert — bitte prüfen Sie Ihre Angaben und senden Sie erneut ab.",
Expand Down Expand Up @@ -466,4 +465,4 @@
"youPay": "Sie bezahlen",
"youReceive": "Sie erhalten",
"youSell": "Sie verkaufen"
}
}
7 changes: 3 additions & 4 deletions assets/languages/strings_en.arb
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,6 @@
"buyBackToMain": "Back to main area",
"buyMinAmount": "Minimum amount: ${amount} ${currency}",
"buyPaymentConfirm": "Buy now bindingly",
"buyPaymentConfirmFailed": "There is a technical problem. Please try again later. If the error persists, contact our support team.",
"buyPaymentConfirmFailedAktionariat": "There is a technical problem. Please check your email inbox — you may still need to confirm your blockchain address. Otherwise, please try again later. If the error persists, contact our support team.",
"buyPaymentConfirmFailedAmountTooLow": "The amount is below the minimum purchase amount. Please increase the amount and try again.",
"buyPaymentDetailsTitle": "Payment details",
"buyPaymentInstructionEmail": "Please transfer the purchase amount via bank transfer. We have just sent you the following payment instructions by email as well.",
"buyPaymentPurposeHint": "Note: The purpose of payment is important! Don't forget to enter it as the payment reference.",
Expand Down Expand Up @@ -286,6 +283,8 @@
"registerEmailVerificationTitle": "Welcome back!",
"registerPhoneNumberInvalid": "Phone number is required",
"registerPhoneNumberOnlyDigits": "Only numbers are allowed",
"registerPhoneNumberPrefixFormat": "Country code must be 1 to 3 digits",
"registerPhoneNumberPrefixInvalid": "Country code is required",
"registrationFailed": "Registration failed:\n${message}",
"registrationForwardingFailed": "Registration accepted, but forwarding to the company is delayed. We will retry automatically.",
"registrationRejected": "The server rejected your registration:\n${reason}\nYour data has not been saved — please check your entries and submit again.",
Expand Down Expand Up @@ -466,4 +465,4 @@
"youPay": "You pay",
"youReceive": "You receive",
"youSell": "You sell"
}
}
4 changes: 2 additions & 2 deletions docs/handbook/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ deployten Image (`handbook.realunit.app`).

## Screenshots regenerieren

Es gibt keinen separaten Regeneration-Schritt: Die 279 Handbook-Screenshots
Es gibt keinen separaten Regeneration-Schritt: Die 278 Handbook-Screenshots
sind direkt die Golden-Baselines unter `test/goldens/` (gemappt in
`scripts/assemble-handbook-screenshots.sh`). Eine UI-Änderung an einer der
gemappten Pages produziert beim `flutter test test/goldens` einen Diff —
Expand Down Expand Up @@ -225,7 +225,7 @@ eigenen `EXPECTED_PDF_COUNT`-Guard des balance-Steps — dann die Zahl in

Die Sektion **W — Web / realunit.app** (`#spec-web`) zeigt die
Visual-Regression-Baselines der öffentlichen Website `realunit.app`
(Landingpage + Aktionariat-Adressbestätigungs-Flow). Sie sind das Web-Pendant
(Landingpage + Aktionariat-Adressbestätigungs-Flow + Adresse-hinzufügen-Flow unter `/account-merge/`). Sie sind das Web-Pendant
zu den Golden-Screenshots der App: Jedes Bild ist eine **Playwright-Baseline**,
die im `RealUnitCH/web`-Repo unter `tests/__screenshots__/` committet und von
dessen Visual-Regression-CI abgesichert ist — driftet das Seitenrendering, wird
Expand Down
Loading
Loading