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

如何将GitHub Actions中一个工作流的运行编号传递至另一个?

如何在GitHub Actions工作流间传递运行编号(run number)

要把第一个工作流的github.run_number传递给第二个工作流,核心是通过工作流触发时的输入参数实现——因为两个工作流是独立运行实例,直接引用${{github.run_number}}只会取当前工作流的编号。以下是具体实现步骤:

1. 配置第二个工作流,接收外部参数

修改你的部署/通知工作流文件(比如deploy.yml),添加workflow_dispatch事件并声明run_number输入参数:

name: 构建部署至GitHub Pages并发送Slack通知
on:
  workflow_dispatch:
    inputs:
      run_number:
        description: '来自测试工作流的运行编号'
        required: true
        type: number

jobs:
  deploy-notify:
    runs-on: ubuntu-latest
    steps:
      # 这里放置你的构建、部署到GitHub Pages的步骤
      
      - name: 发送Slack通知
        uses: slackapi/slack-github-action@v1
        with:
          slack-message: "测试运行编号${{ inputs.run_number }}的Allure报告已部署:https://<你的用户名>.github.io/<你的仓库名>/"
        env:
          SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}

2. 在第一个工作流中触发第二个工作流并传递参数

修改你的测试工作流文件(比如test.yml),在测试完成后通过GitHub API触发第二个工作流,并将当前的github.run_number作为参数传入:

name: 运行测试并生成Allure报告
on: [push, pull_request]

jobs:
  test-report:
    runs-on: ubuntu-latest
    steps:
      # 这里放置你的拉取代码、运行测试、生成Allure报告的步骤
      
      - name: 触发部署工作流
        uses: actions/github-script@v7
        with:
          script: |
            await github.rest.actions.createWorkflowDispatch({
              owner: context.repo.owner,
              repo: context.repo.repo,
              workflow_id: 'deploy.yml', // 对应第二个工作流的文件名
              ref: context.ref,
              inputs: {
                run_number: ${{ github.run_number }}
              }
            })
        permissions:
          actions: write # 必须赋予触发工作流的权限

关键说明

  • 两个工作流是独立的运行实例,第二个工作流里直接用${{github.run_number}}只会获取它自身的运行编号,所以必须通过触发时的输入参数传递第一个工作流的编号。
  • 确保第一个工作流拥有actions: write权限,否则无法触发第二个工作流。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:30:52