vitepress 部署,发布到gitpages
将 vitepress 项目发布到某一个分支,github pages 配置展示,并增加上自动化流程。
配置 actions
这份工作流定义了自动化构建并部署 VitePress 站点到 GitHub Pages 的过程。每当向 master
分支推送代码时,GitHub Actions 会:
- 签出最新的代码。
- 设置 Node.js 环境并安装依赖。
- 构建站点并将构建产物上传到 GitHub Pages。
# 构建 VitePress 站点并将其部署到 GitHub Pages 的示例工作流程
#
name: Deploy VitePress site to Pages
on:
# 在针对 `main` 分支的推送上运行。如果你
# 使用 `master` 分支作为默认分支,请将其更改为 `master`
push:
branches: [master]
# 允许你从 Actions 选项卡手动运行此工作流程
workflow_dispatch:
# 设置 GITHUB_TOKEN 的权限,以允许部署到 GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# 只允许同时进行一次部署,跳过正在运行和最新队列之间的运行队列
# 但是,不要取消正在进行的运行,因为我们希望允许这些生产部署完成
concurrency:
group: pages
cancel-in-progress: false
jobs:
# 构建工作
build:
runs-on: ubuntu-latest
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: 24
# cache: pnpm # 或 pnpm / yarn
- name: Instal PNPM
run: npm i -g pnpm
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Install dependencies
run: pnpm install # 或 pnpm install / yarn install / bun install
- name: Build with VitePress
run: pnpm docs:build # 或 pnpm docs:build / yarn docs:build / bun run docs:build
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: docs/.vitepress/dist
# 部署工作
deploy:
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
upload-pages-artifact
这一步的具体作用:
在 GitHub Actions 中,actions/upload-pages-artifact
用于将构建生成的文件(或其他工件)上传到 GitHub 的存储空间,以便稍后的步骤使用(在本例中是用于部署到 GitHub Pages)。你提到的这一步,实际上是在构建阶段完成的,上传的是构建产物,即存放在 docs/.vitepress/dist
目录中的文件。
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: docs/.vitepress/dist
uses: actions/upload-pages-artifact@v3
: 使用upload-pages-artifact
动作的版本 3,上传指定的文件。with: path: docs/.vitepress/dist
: 这里指定了要上传的文件路径,即 VitePress 构建后生成的文件夹docs/.vitepress/dist
。这些是最终用于部署到 GitHub Pages 的文件。
具体流程:
构建阶段:当你执行
pnpm docs:build
时,VitePress 会把构建的文件输出到docs/.vitepress/dist
目录。这个目录中包含了所有构建后的静态文件,如 HTML 文件、CSS 文件和 JavaScript 文件。上传产物:
actions/upload-pages-artifact
会将docs/.vitepress/dist
目录中的所有内容打包并上传为一个“工件”。这个工件实际上是暂时存储在 GitHub Actions 的环境中,供后续的部署步骤使用。部署阶段:接下来的部署步骤会使用
actions/deploy-pages
将这些文件部署到 GitHub Pages,确保站点可以通过 GitHub Pages URL 访问。
工作流中的这一部分的作用是:
存储和传输构建文件:
upload-pages-artifact
动作负责将构建的文件从当前的 GitHub Actions 工作流中传输到部署阶段。在这里它暂存到 GitHub Actions 的存储区域,供后续的deploy
步骤使用。解耦构建和部署:通过使用工件上传,构建和部署可以在不同的步骤中进行。这种做法有助于避免因构建问题而导致部署失败,或者便于重新部署已经构建的内容。
小结:
actions/upload-pages-artifact
是一种将构建文件从工作流的一部分传递到另一部分的机制,它允许你在 GitHub Actions 的不同步骤之间共享数据。在这个工作流中,它用于将构建的 VitePress 站点文件上传,为之后的 GitHub Pages 部署做准备。
默认情况下,上传的工件会保留 90天,这意味着从上传时间开始,GitHub 会保留这些工件并允许你在此期间下载或查看。
在 90 天后,GitHub 会自动清理这些工件。如果你需要保留这些文件更长时间,可以手动下载它们或使用其他存储方式(例如存储在其他外部服务上)。