maomao1996 / daily-notes

不定期更新的日常笔记记录(零零散散啥都记系列)
https://notes.fe-mm.com/daily-notes/
57 stars 8 forks source link

在 GitHub Actions 中触发其他仓库的 Actions #47

Open maomao1996 opened 3 months ago

maomao1996 commented 3 months ago

在 GitHub Actions 中触发其他仓库的 Actions

为了偷懒,在发布日常笔记时能够自动触发博客的构建和部署

以茂茂的两个笔记仓库举 🌰

生成并添加 GitHub 个人访问令牌

  1. 请参考 GitHub 官方文档:创建 personal access token确保选中了 workflows 权限
  2. 将生成的 GitHub 个人访问令牌添加到源仓库的 Secrets 中

详细教程请查看 配置 Secrets | 茂茂物语

在源仓库中创建工作流

在源仓库中创建或修改已有的 GitHub Actions 工作流文件,例如 .github/workflows/trigger-notes-workflow.yml,内容如下:

name: Trigger Notes Actions

on:
  workflow_dispatch: # 手动触发
  issues:
    types: [opened] # 创建 issue 时触发

jobs:
  trigger:
    runs-on: ubuntu-latest
    steps:
      - name: Repository Dispatch
        uses: peter-evans/repository-dispatch@v3
        with:
          token: ${{ secrets.ACCESS_TOKEN }}
          repository: maomao1996/mm-notes
          event-type: build-and-deploy

这里使用 repository-dispatch 直接触发目标仓库的 Actions

在目标仓库配置响应的工作流

在目标仓库中创建或修改已有的 GitHub Actions 工作流文件,内容如下:

name: GitHub Actions Build and Deploy

on:
  workflow_dispatch:
  repository_dispatch:
    types: [build-and-deploy]

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      # 添加其他步骤,如安装依赖、构建等

按照以上步骤配置后,每当源仓库满足触发条件时,目标仓库的构建和部署流程将自动启动