From 3c641ba79a7ab0311a9b59758673d31676e19221 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20SAILLANT?= <108685187+electron-rare@users.noreply.github.com> Date: Sat, 14 Mar 2026 14:29:27 +0000 Subject: [PATCH] feat: add OVH FTP preview deployment --- .env.ftp.example | 5 +- .github/workflows/deploy-ovh-ftp.yml | 61 +++++++++++ apps/lab-interactif/index.html | 2 +- apps/lab-interactif/src/App.jsx | 3 +- apps/lab-interactif/src/lib/paths.js | 29 +++++ apps/lab-interactif/src/pages/LabHomePage.jsx | 6 +- apps/lab-interactif/vite.config.js | 8 +- astro.config.mjs | 7 +- docs/ovh-ftp-preview-solution-2026-03-14.md | 50 +++++++++ public/assets/brand/logo-lockup.svg | 2 +- public/assets/brand/logo-mark.svg | 2 +- public/favicon.svg | 2 +- scripts/deploy-ovh-ftp-target.sh | 69 ++++++++++++ src/components/sections/Hero.tsx | 26 ++--- src/layouts/BaseLayout.astro | 102 +++++------------- src/lib/site.ts | 56 ++++++++-- src/pages/index.astro | 3 - 17 files changed, 329 insertions(+), 104 deletions(-) create mode 100644 .github/workflows/deploy-ovh-ftp.yml create mode 100644 apps/lab-interactif/src/lib/paths.js create mode 100644 docs/ovh-ftp-preview-solution-2026-03-14.md create mode 100644 scripts/deploy-ovh-ftp-target.sh diff --git a/.env.ftp.example b/.env.ftp.example index caf594a..9ab7658 100644 --- a/.env.ftp.example +++ b/.env.ftp.example @@ -3,4 +3,7 @@ FTP_USER=ecobsoleiq FTP_PORT=21 FTP_REMOTE_DIR=/www FTP_PASS=your-ftp-password -PUBLIC_SITE_URL=https://ton-domaine.fr/ +PUBLIC_SITE_URL_PROD=https://www.lelectronrare.fr/ +PUBLIC_SITE_URL_PREVIEW=https://www.lelectronrare.fr/preview/ +FTP_DNS_RETRIES=5 +FTP_DNS_DELAY=2 diff --git a/.github/workflows/deploy-ovh-ftp.yml b/.github/workflows/deploy-ovh-ftp.yml new file mode 100644 index 0000000..05b7ead --- /dev/null +++ b/.github/workflows/deploy-ovh-ftp.yml @@ -0,0 +1,61 @@ +name: Deploy External Site to OVH FTP + +on: + workflow_dispatch: + inputs: + target: + description: Deployment target + required: true + default: preview + type: choice + options: + - preview + - production + +permissions: + contents: read + +concurrency: + group: ovh-ftp-${{ inputs.target }} + cancel-in-progress: false + +jobs: + deploy: + runs-on: ubuntu-latest + env: + FTP_HOST: ${{ secrets.OVH_FTP_HOST }} + FTP_USER: ${{ secrets.OVH_FTP_USER }} + FTP_PASS: ${{ secrets.OVH_FTP_PASS }} + FTP_PORT: ${{ secrets.OVH_FTP_PORT }} + FTP_REMOTE_DIR: ${{ secrets.OVH_FTP_REMOTE_DIR }} + PUBLIC_SITE_URL_PROD: ${{ vars.PUBLIC_SITE_URL_PROD }} + PUBLIC_SITE_URL_PREVIEW: ${{ vars.PUBLIC_SITE_URL_PREVIEW }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: npm + cache-dependency-path: | + package-lock.json + apps/lab-interactif/package-lock.json + + - name: Install root dependencies + run: npm ci + + - name: Install lab dependencies + run: npm ci --prefix apps/lab-interactif + + - name: Install lftp + run: | + sudo apt-get update + sudo apt-get install -y lftp + + - name: Deploy target + env: + DEPLOY_TARGET_SKIP_BUILD: "0" + run: bash scripts/deploy-ovh-ftp-target.sh "${{ inputs.target }}" diff --git a/apps/lab-interactif/index.html b/apps/lab-interactif/index.html index 3f69a06..019bb15 100644 --- a/apps/lab-interactif/index.html +++ b/apps/lab-interactif/index.html @@ -10,6 +10,6 @@
- +