From b0010e024142903e421961728fb6802d67b7d084 Mon Sep 17 00:00:00 2001 From: RongkangXiong Date: Tue, 6 Feb 2024 23:27:03 +0800 Subject: [PATCH 1/2] Update next.config.js --- next.config.js | 50 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 35 insertions(+), 15 deletions(-) diff --git a/next.config.js b/next.config.js index 23749d4..158a671 100644 --- a/next.config.js +++ b/next.config.js @@ -1,26 +1,46 @@ +const isGithubActions = process.env.GITHUB_ACTIONS || false; +const assetPrefix = ""; +const basePath = ""; + +if (isGithubActions) { + // 去掉 `/` + const repo = process.env.GITHUB_REPOSITORY.replace(/.*?\//, ""); + + assetPrefix = `/${repo}/`; + basePath = `/${repo}`; +} + const withNextra = require('nextra')({ theme: 'nextra-theme-docs', themeConfig: './theme.config.jsx', latex: true, staticImage: true, - output: 'export', + basePath: basePath, + assetPrefix: assetPrefix, + output: 'export' }) -module.exports = withNextra({ - i18n: { - locales: ['zh-CN', 'en-US'], - defaultLocale: 'zh-CN' +module.exports = { + ...withNextra({ + i18n: { + locales: ['zh-CN', 'en-US'], + defaultLocale: 'zh-CN' + }, + // domains: [{ + // domain: 'info.ai4agi.org', + // defaultLocale: 'zh-CN' + // }, + // { + // domain: 'info.ai4agi.cn', + // defaultLocale: 'zh-CN' + // } + // ] + } + ), + images: { + unoptimized: true, }, - // domains: [{ - // domain: 'info.ai4agi.org', - // defaultLocale: 'zh-CN' - // }, - // { - // domain: 'info.ai4agi.cn', - // defaultLocale: 'zh-CN' - // } - // ] } -) + // If you have other Next.js configurations, you can pass them as the parameter: // module.exports = withNextra({ /* other next.js config */ }) \ No newline at end of file From de012ffe88a90f5c66d73f2c92ad3ca144a25df6 Mon Sep 17 00:00:00 2001 From: RongkangXiong Date: Tue, 6 Feb 2024 23:27:32 +0800 Subject: [PATCH 2/2] Update nextra.yml --- .github/workflows/nextra.yml | 123 +++++++++++++++++++++++++++-------- 1 file changed, 95 insertions(+), 28 deletions(-) diff --git a/.github/workflows/nextra.yml b/.github/workflows/nextra.yml index 7c9f7a1..9182f07 100644 --- a/.github/workflows/nextra.yml +++ b/.github/workflows/nextra.yml @@ -1,36 +1,103 @@ -name: Actions CI - Next.js version 12 static site export, GitHub Actions Build and Deploy +# Sample workflow for building and deploying a Next.js site to GitHub Pages +# +# To get started with Next.js see: https://nextjs.org/docs/getting-started +# +name: Deploy Next.js site to Pages on: + # Runs on pushes targeting the default branch push: - branches: [ main ] + branches: ["main"] -jobs: - build-and-deploy: - runs-on: ubuntu-latest - steps: - - name: 获取源码 ️ - uses: actions/checkout@v3 + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: - - name: Node环境版本 ️ - uses: actions/setup-node@v3 - with: - node-version: '18' - cache: 'yarn' # 启用Yarn缓存 +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write - - name: 安装依赖 ⚙️ - run: yarn install +# Allow one concurrent deployment +concurrency: + group: "pages" + cancel-in-progress: true - - name: 打包 ️ - run: | - yarn build - yarn next export # 增加这一行来导出静态网站 - touch out/.nojekyll - +jobs: + # Build job + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - uses: pnpm/action-setup@v2 + with: + version: 7 + run_install: false + - name: Detect package manager + id: detect-package-manager + run: | + if [ -f "${{ github.workspace }}/yarn.lock" ]; then + echo "manager=yarn" >> $GITHUB_OUTPUT + echo "command=install" >> $GITHUB_OUTPUT + echo "runner=yarn" >> $GITHUB_OUTPUT + exit 0 + elif [ -f "${{ github.workspace }}/pnpm-lock.yaml" ]; then + echo "manager=pnpm" >> $GITHUB_OUTPUT + echo "command=install" >> $GITHUB_OUTPUT + echo "runner=pnpm" >> $GITHUB_OUTPUT + exit 0 + elif [ -f "${{ github.workspace }}/package.json" ]; then + echo "manager=npm" >> $GITHUB_OUTPUT + echo "command=ci" >> $GITHUB_OUTPUT + echo "runner=npx --no-install" >> $GITHUB_OUTPUT + exit 0 + else + echo "Unable to determine packager manager" + exit 1 + fi + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: "16" + cache: ${{ steps.detect-package-manager.outputs.manager }} + - name: Setup Pages + uses: actions/configure-pages@v3 + with: + # Automatically inject basePath in your Next.js configuration file and disable + # server side image optimization (https://nextjs.org/docs/api-reference/next/image#unoptimized). + # + # You may remove this line if you want to manage the configuration yourself. + static_site_generator: next + - name: Restore cache + uses: actions/cache@v3 + with: + path: | + .next/cache + # Generate a new cache whenever packages or source files change. + key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock', '**/pnpm-lock.yaml') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }} + # If source files changed but packages didn't, rebuild from a prior cache. + restore-keys: | + ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock', '**/pnpm-lock.yaml') }}- + - name: Install dependencies + run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }} + - name: Build with Next.js + run: ${{ steps.detect-package-manager.outputs.runner }} next build + - name: Static HTML export with Next.js + run: ${{ steps.detect-package-manager.outputs.runner }} next export + - name: Upload artifact + uses: actions/upload-pages-artifact@v1 + with: + path: ./out - - - name: 部署 - uses: JamesIves/github-pages-deploy-action@v4 - with: - branch: gh-pages - folder: out - clean: true \ No newline at end of file + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v1 \ No newline at end of file