mehrere gitlabpages in DWT
basierend auf das Meeting mit Jürgen bruachen wir eine Lösung um DEV oder FEatures bei internen stakeholdern abzunehmen ohne einen weiteren Server zu nutzen.
Folgende Idee könnte das voranbringen basierend auf die Idee von @schauder :
- Es gibt ein Fetching Skript was alte Pages/artifakte von anderen Branches sich nimmt und zwischenspeichert um sie später in Public Folder zu verschieben.
- danach muss die CI die Webseiten ggf bauen die noch nicht gebaut sind (Main)
- alles wird in public verschoben in untererzeichnisse.
- alle außer main werden verschlüsselt damit nur interner mit Zugang zum PW darauf zugreifen können
Beispiel:
ein Fetching skript siehe https://gitlab.opencode.de/open-code/internal/testprojekte/page-a-rama @sebastian
und dann brauchen wir eine CI Yaml die das verwaltet, (siehe https://gitlab.opencode.de/open-code/internal/testprojekte/page-a-rama) z.B. sowas:
CI Beispiel
- prepare
- build
- deploy
variables:
PAGES_DIR: public
.default-build:
image: node:18-alpine
stage: build
before_script:
- apk add --no-cache curl git unzip bash
- npm install -g staticrypt
fetch-existing-pages:
image: alpine:latest
stage: prepare
before_script:
- apk add --no-cache curl jq unzip
script:
- sh fetch_latest_pages_artifacts_any_branch.sh
artifacts:
paths:
- $PAGES_DIR
build-pages:
extends: .default-build
script:
- mkdir -p $PAGES_DIR/$CI_COMMIT_BRANCH
# Beispielinhalt erzeugen (dies ersetzt dein DWT-Output)
- echo "<h1>$CI_COMMIT_BRANCH – Hello World</h1>" > $PAGES_DIR/$CI_COMMIT_BRANCH/index.html
# 🔐 Nur 'main' bleibt ungeschützt
- |
if [ "$CI_COMMIT_BRANCH" != "main" ]; then
if [ -z "$STATICRYPT_PASSWORD" ]; then
echo "❌ Fehler: STATICRYPT_PASSWORD ist nicht gesetzt"
exit 1
fi
staticrypt $PAGES_DIR/$CI_COMMIT_BRANCH/index.html "$STATICRYPT_PASSWORD" -o $PAGES_DIR/$CI_COMMIT_BRANCH/index.html
fi
artifacts:
paths:
- $PAGES_DIR
needs:
- fetch-existing-pages
pages:
stage: deploy
script:
- echo "Deploying GitLab Pages from $PAGES_DIR"
artifacts:
paths:
- $PAGES_DIR
resource_group: gitlab-pages-deploy
Edited by Alexandros Bouras