From 214c305e832180346db796751af23aa98cfc51cd Mon Sep 17 00:00:00 2001 From: tiennm99 Date: Sat, 4 Apr 2026 14:42:00 +0700 Subject: [PATCH] ci: add GitHub Actions workflow to deploy to GitHub Pages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add deploy.yml: test → build → deploy pipeline - Update next.config.mjs with basePath/assetPrefix for /pikachu/ subpath - Uses actions/deploy-pages for GitHub Pages deployment --- .github/workflows/deploy.yml | 48 ++++++++++++++++++++++++++++++++++++ next.config.mjs | 6 ++++- 2 files changed, 53 insertions(+), 1 deletion(-) 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..b4a023d --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,48 @@ +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: true + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + - run: npm ci + - run: npm test + + build-deploy: + needs: test + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + - run: npm ci + - run: npm run build-nolog + - uses: actions/configure-pages@v5 + - uses: actions/upload-pages-artifact@v3 + with: + path: dist + - id: deployment + uses: actions/deploy-pages@v4 diff --git a/next.config.mjs b/next.config.mjs index 8e4928b..034b4d0 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -1,6 +1,10 @@ +const isProd = process.env.NODE_ENV === 'production'; + const nextConfig = { output: 'export', - distDir: 'dist' + distDir: 'dist', + basePath: isProd ? '/pikachu' : '', + assetPrefix: isProd ? '/pikachu/' : '', }; export default nextConfig;