feat: ✨ gengxinwendang #292
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 构建 VitePress 站点并将其部署到 GitHub Pages,并自动发布 doc-editor 包 | |
| # | |
| name: Deploy VitePress site to Pages & Publish doc-editor | |
| on: | |
| # 在针对 `main` 分支的推送上运行。如果你 | |
| # 使用 `master` 分支作为默认分支,请将其更改为 `master` | |
| push: | |
| branches: [main] | |
| tags: | |
| - 'doc-editor-v*' # 只要打了 doc-editor-v* 的 tag 也会触发 | |
| # 允许你从 Actions 选项卡手动运行此工作流程 | |
| workflow_dispatch: | |
| # 设置 GITHUB_TOKEN 的权限,以允许部署到 GitHub Pages | |
| permissions: | |
| contents: read | |
| pages: write | |
| id-token: write | |
| packages: write | |
| # 只允许同时进行一次部署,跳过正在运行和最新队列之间的运行队列 | |
| # 但是,不要取消正在进行的运行,因为我们希望允许这些生产部署完成 | |
| concurrency: | |
| group: pages | |
| cancel-in-progress: false | |
| jobs: | |
| # 构建工作 | |
| build: | |
| runs-on: ubuntu-latest | |
| if: github.ref == 'refs/heads/main' | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 # 如果未启用 lastUpdated,则不需要 | |
| - uses: pnpm/action-setup@v3 # 如果使用 pnpm,请取消此区域注释 | |
| with: | |
| version: 9 | |
| # - uses: oven-sh/setup-bun@v1 # 如果使用 Bun,请取消注释 | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: pnpm # 或 pnpm / yarn | |
| - name: Setup Pages | |
| uses: actions/configure-pages@v4 | |
| - name: Install dependencies | |
| run: | | |
| pnpm install --frozen-lockfile | |
| - name: Build with VitePress | |
| run: pnpm docs:build | |
| - name: Upload artifact | |
| uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: packages/doc-docs/.vitepress/dist | |
| # 部署工作 | |
| deploy: | |
| if: github.ref == 'refs/heads/main' | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} | |
| needs: build | |
| runs-on: ubuntu-latest | |
| name: Deploy | |
| steps: | |
| - name: Deploy to GitHub Pages | |
| id: deployment | |
| uses: actions/deploy-pages@v4 | |
| publish-doc-editor: | |
| if: startsWith(github.ref, 'refs/tags/doc-editor-v') | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| packages: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v3 | |
| with: | |
| version: 9 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '18' | |
| registry-url: 'https://npm.pkg.github.com' | |
| - name: Clean node_modules | |
| run: rm -rf node_modules | |
| working-directory: ./packages/doc-editor | |
| - name: Install dependencies (with devDependencies) | |
| run: | | |
| pnpm config set registry https://registry.npmmirror.com | |
| pnpm install | |
| working-directory: ./packages/doc-editor | |
| - name: Build | |
| run: pnpm run build | |
| working-directory: ./packages/doc-editor | |
| - name: Publish to GitHub Packages | |
| run: pnpm publish --no-git-checks | |
| working-directory: ./packages/doc-editor | |
| env: | |
| NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |