You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置GitHub Action使第二个在第一个提交推送后执行?

让第二个GitHub Action在第一个完成提交推送后执行的两种方法

方法1:通过workflow_run事件监听第一个Workflow完成

直接修改Action2的触发规则,让它仅在Action1(名称为Scrape Data)执行完成后自动启动。这种方式能精准关联两个Workflow的执行顺序。

修改后的Action2配置:

on: 
  workflow_dispatch:
    inputs:
  workflow_run:
    workflows: ["Scrape Data"] # 填写Action1的name字段值
    types:
      - completed

name: Visit Data
jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    # 可选:仅在Action1成功完成时才执行Action2
    if: ${{ github.event.workflow_run.conclusion == 'success' }}
    steps:
    - uses: actions/checkout@master
    - name: Build
      run: npm install
    - name: Scrape
      run: npm run visit 
    - uses: mikeal/publish-to-github-action@master
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

方法2:在第一个Workflow末尾主动触发第二个Workflow

如果需要更精细的控制(比如仅在Action1的推送步骤成功后触发),可以在Action1的任务末尾添加步骤,调用GitHub API触发Action2的手动执行事件。

修改后的Action1配置:

on: 
  workflow_dispatch:
    inputs:
name: Scrape Data
jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@master
    - name: Build
      run: npm install
    - name: Scrape
      run: npm run action 
    - uses: mikeal/publish-to-github-action@master
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    # 添加触发Action2的步骤
    - name: Trigger Visit Data workflow
      uses: actions/github-script@v6
      with:
        script: |
          await github.rest.actions.createWorkflowDispatch({
            owner: context.repo.owner,
            repo: context.repo.repo,
            workflow_id: 'visit-data.yml', // 替换为Action2的实际文件名
            ref: context.ref
          })

注意事项

  • 方法1中若不加if条件,Action1无论成功或失败都会触发Action2,按需选择是否添加成功校验。
  • 方法2需要确保GITHUB_TOKEN拥有仓库的Workflow触发权限,且需准确填写Action2的文件名。

内容的提问来源于stack exchange,提问作者Paul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 06:16:21