完成投资的看法 #16
This file contains 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
# 部署 Hugo 站点到 GitHub Pages 的工作流 | |
name: Deploy Hugo site to Pages | |
# 触发条件:当 main 分支有 push 操作,或手动触发时启动该工作流 | |
on: | |
push: | |
branches: ["main"] # 监听 main 分支的 push 事件 | |
workflow_dispatch: # 允许从 Actions 标签页手动触发工作流 | |
# 权限设置:设置 GITHUB_TOKEN 的权限,以便进行 GitHub Pages 部署 | |
permissions: | |
contents: read # 允许读取仓库内容 | |
pages: write # 允许写入 GitHub Pages 内容 | |
id-token: write # 用于身份验证的 ID 令牌 | |
# 并发控制:确保同一时间只有一个部署进程,以防止多次重复部署 | |
concurrency: | |
group: "pages" # 指定并发组名称为 pages | |
cancel-in-progress: false # 设置为 false,以免中断正在进行的部署 | |
# 默认 shell 配置:将默认 shell 设置为 bash | |
defaults: | |
run: | |
shell: bash | |
# 定义单个部署作业(Job) | |
jobs: | |
deploy: | |
# 指定运行环境为最新的 Ubuntu 系统 | |
runs-on: ubuntu-latest | |
# 执行步骤 | |
steps: | |
# 第一步:检出代码仓库内容 | |
- name: Checkout repository | |
uses: actions/checkout@v4 # 使用 checkout action 的 v4 版本,支持 Node.js 20 | |
with: | |
submodules: true # 下载包含在仓库中的所有 Git 子模块(如 Hugo 主题) | |
# 第二步:设置 GitHub Pages 环境 | |
- name: Setup Pages | |
id: pages | |
uses: actions/configure-pages@v5 # 使用 GitHub 提供的配置 pages action | |
# 第三步:安装 Hugo CLI | |
- name: Install Hugo CLI | |
uses: peaceiris/actions-hugo@v3 # 使用最新的 peaceiris Hugo action 支持 Node.js 20 | |
with: | |
hugo-version: 'latest' # 安装最新版本的 Hugo | |
extended: true # 安装扩展版,支持 SASS/SCSS 编译 | |
# 第四步:使用 Hugo 构建网站 | |
- name: Build with Hugo | |
env: | |
HUGO_CACHEDIR: ${{ runner.temp }}/hugo_cache # 使用默认的临时缓存目录 | |
HUGO_ENVIRONMENT: production # 设置构建环境为生产环境 | |
run: | | |
hugo --minify --baseURL "${{ steps.pages.outputs.base_url }}/" # 使用 GitHub Pages 提供的基础 URL,压缩并构建网站 | |
# 第五步:将构建输出上传为 GitHub Pages 的静态文件 | |
- name: Upload artifact to Pages | |
uses: actions/upload-pages-artifact@v3 # 使用上传文件的 action,适配 Node.js 20 | |
with: | |
path: ./public # 指定要上传的文件夹路径(Hugo 默认输出到 ./public) | |
# 第六步:将上传的静态文件部署到 GitHub Pages | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v4 # 使用 GitHub 官方的 deploy pages action |