diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..b2580f2 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +2026.05.18.1 diff --git a/docs/portal_sync_flow.md b/docs/portal_sync_flow.md new file mode 100644 index 0000000..99f2d43 --- /dev/null +++ b/docs/portal_sync_flow.md @@ -0,0 +1,34 @@ +# Portal Sync Flow + +## Ziel + +Der Styleguide bleibt in diesem Repository die Source of Truth. Das Portal holt den Stand versioniert als `public/assets/styleguide.upstream.css`. + +## Vorbereitung + +- Version in `VERSION` erhoehen, sobald ein freigegebener Stand vorliegt. +- Aenderungen im Styleguide committen und pushen. + +## Sync ausfuehren + +Beispiel: + +```bash +./scripts/sync_styleguide_to_portal.sh \ + --portal-repo "/Users/mathias/Documents/Dokumente Chouchou/Codebases/WebApp_Aktienberater" \ + --commit-portal +``` + +## Ergebnis im Portalrepo + +- `public/assets/styleguide.upstream.css` aktualisiert +- `public/assets/styleguide.upstream.meta.json` aktualisiert (Version, Commit, Zeitstempel) +- Optional: automatischer Commit + Push im Portalrepo + +## Standardprozess je Release + +1. Styleguide aendern +2. `VERSION` erhoehen +3. Styleguide commit + push +4. Sync-Skript ausfuehren +5. Portal Smoke-Test diff --git a/scripts/sync_styleguide_to_portal.sh b/scripts/sync_styleguide_to_portal.sh new file mode 100755 index 0000000..a37f4d5 --- /dev/null +++ b/scripts/sync_styleguide_to_portal.sh @@ -0,0 +1,103 @@ +#!/usr/bin/env bash +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +STYLEGUIDE_REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" +SOURCE_CSS="$STYLEGUIDE_REPO_ROOT/styleguide.css" +VERSION_FILE="$STYLEGUIDE_REPO_ROOT/VERSION" + +PORTAL_REPO_PATH="" +PORTAL_CSS_REL="public/assets/styleguide.upstream.css" +PORTAL_META_REL="public/assets/styleguide.upstream.meta.json" +COMMIT_IN_PORTAL="false" + +usage() { + cat < [--commit-portal] + +Options: + --portal-repo Absolute path to portal repository root. + --commit-portal Create commit in portal repo after sync. + -h, --help Show this help. +USAGE +} + +while [[ $# -gt 0 ]]; do + case "$1" in + --portal-repo) + PORTAL_REPO_PATH="${2:-}" + shift 2 + ;; + --commit-portal) + COMMIT_IN_PORTAL="true" + shift + ;; + -h|--help) + usage + exit 0 + ;; + *) + echo "Unknown argument: $1" >&2 + usage + exit 1 + ;; + esac +done + +if [[ -z "$PORTAL_REPO_PATH" ]]; then + echo "Missing required argument: --portal-repo" >&2 + usage + exit 1 +fi + +if [[ ! -f "$SOURCE_CSS" ]]; then + echo "Source CSS not found: $SOURCE_CSS" >&2 + exit 1 +fi + +if [[ ! -f "$VERSION_FILE" ]]; then + echo "Version file not found: $VERSION_FILE" >&2 + exit 1 +fi + +if [[ ! -d "$PORTAL_REPO_PATH/.git" ]]; then + echo "Portal repo is not a git repository: $PORTAL_REPO_PATH" >&2 + exit 1 +fi + +PORTAL_CSS_PATH="$PORTAL_REPO_PATH/$PORTAL_CSS_REL" +PORTAL_META_PATH="$PORTAL_REPO_PATH/$PORTAL_META_REL" + +mkdir -p "$(dirname "$PORTAL_CSS_PATH")" + +cp "$SOURCE_CSS" "$PORTAL_CSS_PATH" + +STYLEGUIDE_VERSION="$(tr -d '[:space:]' < "$VERSION_FILE")" +STYLEGUIDE_COMMIT="$(git -C "$STYLEGUIDE_REPO_ROOT" rev-parse --short HEAD)" +SYNCED_AT="$(date -u +"%Y-%m-%dT%H:%M:%SZ")" + +cat > "$PORTAL_META_PATH" < $PORTAL_CSS_PATH" +echo "Metadata written: $PORTAL_META_PATH"