如何将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
相关产品推荐
相关产品推荐

