name: Build and publish Corp v1 Board portal on: push: branches: [main] pull_request: branches: [main] jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' - name: Install pnpm uses: pnpm/action-setup@v4 with: version: 9.15.9 - name: Install dependencies run: pnpm install --frozen-lockfile - name: Validate portal contracts run: pnpm verify:portal - name: Typecheck run: pnpm typecheck - name: Build site run: pnpm build - name: Validate built routes and search index run: pnpm verify:portal - name: Publish to LEGO Cloud Pages if: gitea.event_name == 'push' && gitea.ref == 'refs/heads/main' shell: bash run: | set -euo pipefail ORG_REPO='${{ gitea.repository }}' case "$ORG_REPO" in */*) ;; *) exit 1 ;; esac case "$ORG_REPO" in *..*|/*|*/|*//* ) exit 1 ;; esac test -f build/index.html pages_root='/gondor-v1-gitea-pages' mountpoint -q "$pages_root" || { echo "$pages_root is not a persistent mount" >&2; exit 1; } destination="$pages_root/$ORG_REPO" rm -rf -- "$destination" mkdir -p "$destination" cp -a build/. "$destination/"