12 Commits

Author SHA1 Message Date
3adf5173e3 fix: améliorer le déploiement avec Cloudflare Wrangler en capturant l'URL de déploiement 2026-01-06 14:58:23 +01:00
5bd407a4ae Merge branch 'master' into feat/vueflow 2026-01-06 14:23:45 +01:00
8e54617c23 fix: corriger la capitalisation du texte d'en-tête sur la page Ecosystem 2026-01-06 14:20:35 +01:00
830ea37cb0 fix: ajouter les secrets API pour Cloudflare Wrangler 2026-01-06 14:15:48 +01:00
f3d3a507dc fix: mettre à jour la commande de déploiement pour Cloudflare Wrangler 2026-01-06 14:14:52 +01:00
33bb54ec5f fix: ajouter la route de pré-rendu pour la page d'accueil 2026-01-06 13:57:18 +01:00
e0bb04d9b8 fix: mettre à jour les dépendances nuxt-studio et vue-tsc vers leurs versions stables 2026-01-06 13:50:45 +01:00
b476033a97 fix: supprimer la configuration de déploiement pour Cloudflare dans nuxt.config.ts 2026-01-05 16:45:18 +01:00
197c15619e fix: ajouter la configuration de déploiement pour Cloudflare dans nuxt.config.ts 2026-01-05 16:41:38 +01:00
0f02b8609a fix: mettre à jour la logique de détermination de la cible de déploiement et supprimer les messages de débogage 2026-01-05 16:35:00 +01:00
d18b9094d5 fix: ajouter des messages de débogage pour la détermination de la cible de déploiement 2026-01-05 15:56:20 +01:00
b3980a2741 fix: mettre à jour le texte d'en-tête pour plus d'impact 2026-01-05 15:51:00 +01:00
6 changed files with 33 additions and 24 deletions

View File

@@ -31,6 +31,8 @@ jobs:
uses: cloudflare/wrangler-action@v3 uses: cloudflare/wrangler-action@v3
with: with:
command: types command: types
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
- name: Build - name: Build
run: bun run build run: bun run build
@@ -44,25 +46,32 @@ jobs:
NUXT_STATUS_PAGE: ${{ secrets.NUXT_STATUS_PAGE }} NUXT_STATUS_PAGE: ${{ secrets.NUXT_STATUS_PAGE }}
STUDIO_GITHUB_CLIENT_ID: ${{ secrets.STUDIO_GITHUB_CLIENT_ID }} STUDIO_GITHUB_CLIENT_ID: ${{ secrets.STUDIO_GITHUB_CLIENT_ID }}
STUDIO_GITHUB_CLIENT_SECRET: ${{ secrets.STUDIO_GITHUB_CLIENT_SECRET }} STUDIO_GITHUB_CLIENT_SECRET: ${{ secrets.STUDIO_GITHUB_CLIENT_SECRET }}
STUDIO_GITHUB_MODERATORS: ${{ secrets.STUDIO_GITHUB_MODERATORS }}
- name: Determine Deployment Target - name: Determine Deployment Command
id: target id: target
run: | run: |
if [ "${{ github.ref_name }}" = "main" ] || [ "${{ github.ref_name }}" = "master" ]; then if [ "${{ github.ref_name }}" = "main" ] || [ "${{ github.ref_name }}" = "master" ]; then
echo "env_flag=" >> $GITHUB_OUTPUT echo "wrangler_command=deploy" >> $GITHUB_OUTPUT
echo "env_name=Production" >> $GITHUB_OUTPUT echo "env_name=Production" >> $GITHUB_OUTPUT
else else
echo "env_flag=--env preview" >> $GITHUB_OUTPUT echo "wrangler_command=versions upload" >> $GITHUB_OUTPUT
echo "env_name=Preview" >> $GITHUB_OUTPUT echo "env_name=Preview" >> $GITHUB_OUTPUT
fi fi
- name: Publish to Cloudflare Workers - name: Run Cloudflare Wrangler & Capture URL
uses: cloudflare/wrangler-action@v3 id: wrangler
with: run: |
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} # Exécuter wrangler et rediriger la sortie vers un fichier tout en l'affichant (tee)
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} bunx wrangler ${{ steps.target.outputs.wrangler_command }} | tee wrangler.log
command: deploy ${{ steps.target.outputs.env_flag }}
gitHubToken: ${{ secrets.GITHUB_TOKEN }} # Extraction de l'URL
if [ "${{ steps.target.outputs.env_name }}" = "Preview" ]; then
PREVIEW_URL=$(grep -o 'https://[^ ]*\.workers\.dev' wrangler.log | head -n 1)
echo "DEPLOY_URL=$PREVIEW_URL" >> $GITHUB_OUTPUT
else
echo "DEPLOY_URL=https://arthurdanjou.fr" >> $GITHUB_OUTPUT
fi
env: env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
@@ -77,7 +86,8 @@ jobs:
title: "Déploiement Portfolio (${{ steps.target.outputs.env_name }})" title: "Déploiement Portfolio (${{ steps.target.outputs.env_name }})"
description: | description: |
Build terminé sur la branche **${{ github.ref_name }}**. Build terminé sur la branche **${{ github.ref_name }}**.
Environnement cible : **${{ steps.target.outputs.env_name }}**. Environnement : **${{ steps.target.outputs.env_name }}**
URL : **${{ steps.wrangler.outputs.DEPLOY_URL }}**
Commit: `${{ github.sha }}` par ${{ github.actor }}. Commit: `${{ github.sha }}` par ${{ github.actor }}.
nofail: false nofail: false
nodetail: false nodetail: false

View File

@@ -10,7 +10,7 @@ useSeoMeta({
<main class="min-h-[60vh] flex flex-col items-center justify-center p-4"> <main class="min-h-[60vh] flex flex-col items-center justify-center p-4">
<div class="max-w-2xl text-center space-y-8"> <div class="max-w-2xl text-center space-y-8">
<h1 class="p-2 text-4xl md:text-6xl font-bold bg-linear-to-r from-inverted/40 to-inverted/75 to-70% bg-clip-text text-transparent duration-200 my-12 md:my-24"> <h1 class="p-2 text-4xl md:text-6xl font-bold bg-linear-to-r from-inverted/40 to-inverted/75 to-70% bg-clip-text text-transparent duration-200 my-12 md:my-24">
Coming Soon... Coming Soon... Very Soon...
</h1> </h1>
<p class="text-lg md:text-xl text-neutral-600 dark:text-neutral-400 leading-relaxed"> <p class="text-lg md:text-xl text-neutral-600 dark:text-neutral-400 leading-relaxed">

View File

@@ -18,10 +18,10 @@
"drizzle-kit": "^0.31.8", "drizzle-kit": "^0.31.8",
"drizzle-orm": "^0.45.1", "drizzle-orm": "^0.45.1",
"nuxt": "4.2.2", "nuxt": "4.2.2",
"nuxt-studio": "1.0.0-beta.3", "nuxt-studio": "1.0.0",
"vue": "3.5.26", "vue": "3.5.26",
"vue-router": "4.6.4", "vue-router": "4.6.4",
"zod": "^4.3.4", "zod": "^4.3.5",
}, },
"devDependencies": { "devDependencies": {
"@iconify-json/devicon": "1.2.56", "@iconify-json/devicon": "1.2.56",
@@ -34,7 +34,7 @@
"@vueuse/nuxt": "14.1.0", "@vueuse/nuxt": "14.1.0",
"eslint": "9.39.2", "eslint": "9.39.2",
"typescript": "^5.9.3", "typescript": "^5.9.3",
"vue-tsc": "3.2.1", "vue-tsc": "3.2.2",
"wrangler": "4.54.0", "wrangler": "4.54.0",
}, },
}, },
@@ -970,7 +970,7 @@
"@vue/devtools-shared": ["@vue/devtools-shared@8.0.5", "", { "dependencies": { "rfdc": "^1.4.1" } }, "sha512-bRLn6/spxpmgLk+iwOrR29KrYnJjG9DGpHGkDFG82UM21ZpJ39ztUT9OXX3g+usW7/b2z+h46I9ZiYyB07XMXg=="], "@vue/devtools-shared": ["@vue/devtools-shared@8.0.5", "", { "dependencies": { "rfdc": "^1.4.1" } }, "sha512-bRLn6/spxpmgLk+iwOrR29KrYnJjG9DGpHGkDFG82UM21ZpJ39ztUT9OXX3g+usW7/b2z+h46I9ZiYyB07XMXg=="],
"@vue/language-core": ["@vue/language-core@3.2.1", "", { "dependencies": { "@volar/language-core": "2.4.27", "@vue/compiler-dom": "^3.5.0", "@vue/shared": "^3.5.0", "alien-signals": "^3.0.0", "muggle-string": "^0.4.1", "path-browserify": "^1.0.1", "picomatch": "^4.0.2" } }, "sha512-g6oSenpnGMtpxHGAwKuu7HJJkNZpemK/zg3vZzZbJ6cnnXq1ssxuNrXSsAHYM3NvH8p4IkTw+NLmuxyeYz4r8A=="], "@vue/language-core": ["@vue/language-core@3.2.2", "", { "dependencies": { "@volar/language-core": "2.4.27", "@vue/compiler-dom": "^3.5.0", "@vue/shared": "^3.5.0", "alien-signals": "^3.0.0", "muggle-string": "^0.4.1", "path-browserify": "^1.0.1", "picomatch": "^4.0.2" } }, "sha512-5DAuhxsxBN9kbriklh3Q5AMaJhyOCNiQJvCskN9/30XOpdLiqZU9Q+WvjArP17ubdGEyZtBzlIeG5nIjEbNOrQ=="],
"@vue/reactivity": ["@vue/reactivity@3.5.26", "", { "dependencies": { "@vue/shared": "3.5.26" } }, "sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ=="], "@vue/reactivity": ["@vue/reactivity@3.5.26", "", { "dependencies": { "@vue/shared": "3.5.26" } }, "sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ=="],
@@ -2014,7 +2014,7 @@
"nuxt-site-config-kit": ["nuxt-site-config-kit@3.2.14", "", { "dependencies": { "@nuxt/kit": "^4.2.2", "pkg-types": "^2.3.0", "site-config-stack": "3.2.14", "std-env": "^3.10.0", "ufo": "^1.6.1" } }, "sha512-HOdYOLWL8f25aNEPdf72OuvL4Z7bMCNDm+XXDQ9bykNA1X3wJ8/vcMfU3tS4nPccoyaW100RTgTFSitAWp+iuA=="], "nuxt-site-config-kit": ["nuxt-site-config-kit@3.2.14", "", { "dependencies": { "@nuxt/kit": "^4.2.2", "pkg-types": "^2.3.0", "site-config-stack": "3.2.14", "std-env": "^3.10.0", "ufo": "^1.6.1" } }, "sha512-HOdYOLWL8f25aNEPdf72OuvL4Z7bMCNDm+XXDQ9bykNA1X3wJ8/vcMfU3tS4nPccoyaW100RTgTFSitAWp+iuA=="],
"nuxt-studio": ["nuxt-studio@1.0.0-beta.3", "", { "dependencies": { "@iconify-json/lucide": "^1.2.82", "@nuxtjs/mdc": "^0.19.1", "@vueuse/core": "^14.1.0", "defu": "^6.1.4", "destr": "^2.0.5", "js-yaml": "^4.1.1", "minimatch": "^10.1.1", "nuxt-component-meta": "^0.16.0", "remark-mdc": "^3.9.0", "shiki": "^3.20.0", "unstorage": "1.17.3" } }, "sha512-Rcx7sfsQ0CeHY0rtqLKSgm2pRPF0mknJ9UVXyKWHkcnAFnhouAM8r6SoPLVHRdd/cmxdM9uTrNTfz6CNbk7vtQ=="], "nuxt-studio": ["nuxt-studio@1.0.0", "", { "dependencies": { "@iconify-json/lucide": "^1.2.82", "@nuxtjs/mdc": "^0.19.2", "@vueuse/core": "^14.1.0", "defu": "^6.1.4", "destr": "^2.0.5", "js-yaml": "^4.1.1", "minimatch": "^10.1.1", "nuxt-component-meta": "^0.16.0", "remark-mdc": "^3.10.0", "shiki": "^3.20.0", "unstorage": "1.17.3" } }, "sha512-6tlO2jzZZ5xvSari4155lh1blV+jUC/JxQGY+437vUrVdFZPH1bALfwtHzWosEY1vbMpb2chr3I+OTUdnkTKxw=="],
"nypm": ["nypm@0.6.2", "", { "dependencies": { "citty": "^0.1.6", "consola": "^3.4.2", "pathe": "^2.0.3", "pkg-types": "^2.3.0", "tinyexec": "^1.0.1" }, "bin": { "nypm": "dist/cli.mjs" } }, "sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g=="], "nypm": ["nypm@0.6.2", "", { "dependencies": { "citty": "^0.1.6", "consola": "^3.4.2", "pathe": "^2.0.3", "pkg-types": "^2.3.0", "tinyexec": "^1.0.1" }, "bin": { "nypm": "dist/cli.mjs" } }, "sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g=="],
@@ -2658,7 +2658,7 @@
"vue-router": ["vue-router@4.6.4", "", { "dependencies": { "@vue/devtools-api": "^6.6.4" }, "peerDependencies": { "vue": "^3.5.0" } }, "sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg=="], "vue-router": ["vue-router@4.6.4", "", { "dependencies": { "@vue/devtools-api": "^6.6.4" }, "peerDependencies": { "vue": "^3.5.0" } }, "sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg=="],
"vue-tsc": ["vue-tsc@3.2.1", "", { "dependencies": { "@volar/typescript": "2.4.27", "@vue/language-core": "3.2.1" }, "peerDependencies": { "typescript": ">=5.0.0" }, "bin": { "vue-tsc": "bin/vue-tsc.js" } }, "sha512-I23Rk8dkQfmcSbxDO0dmg9ioMLjKA1pjlU3Lz6Jfk2pMGu3Uryu9810XkcZH24IzPbhzPCnkKo2rEMRX0skSrw=="], "vue-tsc": ["vue-tsc@3.2.2", "", { "dependencies": { "@volar/typescript": "2.4.27", "@vue/language-core": "3.2.2" }, "peerDependencies": { "typescript": ">=5.0.0" }, "bin": { "vue-tsc": "bin/vue-tsc.js" } }, "sha512-r9YSia/VgGwmbbfC06hDdAatH634XJ9nVl6Zrnz1iK4ucp8Wu78kawplXnIDa3MSu1XdQQePTHLXYwPDWn+nyQ=="],
"w3c-keyname": ["w3c-keyname@2.2.8", "", {}, "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ=="], "w3c-keyname": ["w3c-keyname@2.2.8", "", {}, "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ=="],

View File

@@ -117,11 +117,13 @@ export default defineNuxtConfig({
nitro: { nitro: {
preset: 'cloudflare_module', preset: 'cloudflare_module',
experimental: { experimental: {
openAPI: true openAPI: true
}, },
prerender: { prerender: {
routes: ['/'],
crawlLinks: true crawlLinks: true
} }
}, },

View File

@@ -24,7 +24,7 @@
"drizzle-kit": "^0.31.8", "drizzle-kit": "^0.31.8",
"drizzle-orm": "^0.45.1", "drizzle-orm": "^0.45.1",
"nuxt": "4.2.2", "nuxt": "4.2.2",
"nuxt-studio": "1.0.0-beta.3", "nuxt-studio": "1.0.0",
"vue": "3.5.26", "vue": "3.5.26",
"vue-router": "4.6.4", "vue-router": "4.6.4",
"zod": "^4.3.5" "zod": "^4.3.5"
@@ -40,7 +40,7 @@
"@vueuse/nuxt": "14.1.0", "@vueuse/nuxt": "14.1.0",
"eslint": "9.39.2", "eslint": "9.39.2",
"typescript": "^5.9.3", "typescript": "^5.9.3",
"vue-tsc": "3.2.1", "vue-tsc": "3.2.2",
"wrangler": "4.54.0" "wrangler": "4.54.0"
} }
} }

View File

@@ -1,10 +1,7 @@
/* eslint-disable */ /* eslint-disable */
// Generated by Wrangler by running `wrangler types` (hash: 8c48032b4b2801cdbac6e8dbc9d26203) // Generated by Wrangler by running `wrangler types` (hash: 373e9a05bf207b93549ab53665d07e4b)
// Runtime types generated with workerd@1.20251210.0 2025-12-13 nodejs_compat // Runtime types generated with workerd@1.20251210.0 2025-12-13 nodejs_compat
declare namespace Cloudflare { declare namespace Cloudflare {
interface GlobalProps {
mainModule: typeof import("./.output/server/index");
}
interface Env { interface Env {
CACHE: KVNamespace; CACHE: KVNamespace;
STUDIO_GITHUB_CLIENT_ID: string; STUDIO_GITHUB_CLIENT_ID: string;