欲望以提升热忱,毅力以磨平高山!|

navyum

园龄:4个月粉丝:0关注:0

github_action

github action 踩坑记录

问题一:工作流互相触发异常的

  • 主要任务:
    1. 使用【自动生成工作流】通过定时任务触发,生产内容并推送到分支
    2. 使用【构建工作流】通过push事件监听,将新生产的内容构建成待发布内容
    3. 使用【pages发布工作流】将构建好的内容发布到Pages
  • 遇到的问题:
    • 1号工作流执行完成后,不会自动触发2号工作流进行build

    • 1号工作流的定时触发配置: ``` # 触发机制 name: Generate Daily Markdown on: schedule: - cron: ’01 8 * * *’

      jobs: build: …省略…

      # 向main分支推送修改
      - name: Push changes
      uses: ad-m/github-push-action@master
      with:
      github_token: ${{ secrets.GITHUB_TOKEN }}
      branch: ${{ github.ref }}

      ```

    • 2号工作流的push触发配置: name: docs build on: push: branches: - main

    • 1号触发任务会向main分支进行推送,理应会触发2号工作流,但是实际无法触发

  • 排查过程:
    • 官方说明:
    • 官方主要是出于防止循环依赖导致资源浪费考虑所以这样设计。(请确保不要创建递归或意外的工作流程)
  • 解决方案:
    • 方案1:使用workflow_run监听【工作流1】
      • 具体操作,修改2号工作流触发机制:
      name: docs build
      on:
      workflow_run:
      workflows: "Generate Daily Markdown" # 需要监听的流程名字
      types: completed
    • 方案2:使用personal access token,替代GITHUB_TOKEN
      • 具体操作,修改1号工作流的push方式:
      - name: Push changes
      uses: ad-m/github-push-action@master
      with:
      github_token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
      branch: ${{ github.ref }}

本文作者:navyum

本文链接:https://www.cnblogs.com/navyum/p/18509392

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   navyum  阅读(5)  评论(0编辑  收藏  举报
//自己上传到博客园的js
点击右上角即可分享
微信分享提示