diff --git a/.gitea/workflows/prod.yml b/.gitea/workflows/prod.yml new file mode 100644 index 0000000..5322212 --- /dev/null +++ b/.gitea/workflows/prod.yml @@ -0,0 +1,55 @@ +name: Deploy site (production) + +# Déploie le site vitrine (packages/site) sur Plesk via FTPS (lftp), à l'identique +# de lidge_web / tracksniff-web. Ne se déclenche que sur un changement du site. +on: + push: + branches: + - main + paths: + - 'packages/site/**' + - '.gitea/workflows/prod.yml' + workflow_dispatch: + +concurrency: + group: deploy-site + cancel-in-progress: true + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + container: + image: node:22-bookworm + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + # Install scopé au workspace du site : pas de build des deps natives du + # serveur (node-pty / node:sqlite) qui n'ont rien à faire ici. + - name: Install deps (@arboretum/site) + run: npm install -w @arboretum/site --no-audit --no-fund + + - name: Build site + run: npm run build:site + + - name: Check build output + run: ls -la packages/site/dist + + - name: Deploy via FTPS (lftp) + run: | + if [ -z "$REMOTE_PATH" ]; then + echo "::error::Secret SITE_REMOTE_PATH manquant (chemin docroot du vhost git-arboretum.com)." + exit 1 + fi + apt-get update && apt-get install -y lftp + lftp -c " + open -u \"$FTP_USER\",\"$FTP_PASSWORD\" \"$FTP_HOST\" + set ssl:verify-certificate no + mirror -R --delete --verbose packages/site/dist \"$REMOTE_PATH\" + " + env: + FTP_HOST: ${{ secrets.FTP_HOST }} + FTP_USER: ${{ secrets.FTP_USER }} + FTP_PASSWORD: ${{ secrets.FTP_PASSWORD }} + # Chemin docroot du vhost git-arboretum.com sur Plesk (ex. /httpdocs/arboretum/public). + REMOTE_PATH: ${{ secrets.SITE_REMOTE_PATH }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 29a31e8..5fa2b8d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,6 +27,7 @@ jobs: - run: npm ci - run: npm run typecheck - run: npm run build + - run: npm run build:site - run: npx vitest run pack-smoke: diff --git a/package.json b/package.json index ff86b98..299742f 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,10 @@ "pack": "npm run build && npm pack -w @johanleroy/git-arboretum", "test": "vitest run", "dev:server": "npm run dev -w @johanleroy/git-arboretum", - "dev:web": "npm run dev -w @arboretum/web" + "dev:web": "npm run dev -w @arboretum/web", + "build:site": "npm run build -w @arboretum/site", + "dev:site": "npm run dev -w @arboretum/site", + "preview:site": "npm run preview -w @arboretum/site" }, "devDependencies": { "@types/node": "^22.10.0", diff --git a/packages/site/index.html b/packages/site/index.html new file mode 100644 index 0000000..1ff6e15 --- /dev/null +++ b/packages/site/index.html @@ -0,0 +1,53 @@ + + +
+ + + + + +{{ f.a }}
+
+ {{ t('ctaBody') }}
+ ++ {{ t('heroSub') }} +
+ +{{ t('step1Desc') }}
+{{ t('step2Desc') }}
+{{ t('step3Desc') }}
+{{ t('probBody') }}
+{{ t('secIntro') }}
+{{ t('scABody') }}
+{{ t('scBBody') }}
+{{ t('scCBody') }}
+{{ t('grpBody') }}
+