From 67c521767041140804dbfe0eb987ea4538816392 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 9 May 2026 15:34:19 +0000 Subject: [PATCH] Add GitHub Pages deployment via GitHub Actions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Workflow builds on push to main, injects VITE_FIREBASE_* from repo secrets - Vite base set to /hanabi/ for the GitHub Pages project site URL - Switch BrowserRouter → HashRouter so /game/:id links survive hard refresh To activate: Settings → Pages → Source: GitHub Actions Then add the 6 VITE_FIREBASE_* secrets under Settings → Secrets → Actions. https://claude.ai/code/session_01NjQtiaF6QdQc9KWj1N8xUW --- .github/workflows/deploy.yml | 53 ++++++++++++++++++++++++++++++++++++ src/App.tsx | 6 ++-- vite.config.ts | 1 + 3 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/deploy.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..83520ee --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,53 @@ +name: Deploy to GitHub Pages + +on: + push: + branches: [main] + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: '20' + cache: npm + + - name: Install dependencies + run: npm ci + + - name: Build + run: npm run build + env: + VITE_FIREBASE_API_KEY: ${{ secrets.VITE_FIREBASE_API_KEY }} + VITE_FIREBASE_AUTH_DOMAIN: ${{ secrets.VITE_FIREBASE_AUTH_DOMAIN }} + VITE_FIREBASE_PROJECT_ID: ${{ secrets.VITE_FIREBASE_PROJECT_ID }} + VITE_FIREBASE_STORAGE_BUCKET: ${{ secrets.VITE_FIREBASE_STORAGE_BUCKET }} + VITE_FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.VITE_FIREBASE_MESSAGING_SENDER_ID }} + VITE_FIREBASE_APP_ID: ${{ secrets.VITE_FIREBASE_APP_ID }} + + - uses: actions/upload-pages-artifact@v3 + with: + path: dist + + deploy: + needs: build + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - uses: actions/deploy-pages@v4 + id: deployment diff --git a/src/App.tsx b/src/App.tsx index b764f2f..1403298 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,14 +1,14 @@ -import { BrowserRouter, Routes, Route } from 'react-router-dom' +import { HashRouter, Routes, Route } from 'react-router-dom' import HomePage from '@/pages/HomePage' import GamePage from '@/pages/GamePage' export default function App() { return ( - + } /> } /> - + ) } diff --git a/vite.config.ts b/vite.config.ts index 80b5778..2a6cfc5 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -4,6 +4,7 @@ import tailwindcss from '@tailwindcss/vite' import path from 'path' export default defineConfig({ + base: '/hanabi/', plugins: [tailwindcss(), react()], resolve: { alias: { '@': path.resolve(__dirname, './src') },