触发另一个存储库的工作流并获取工件



我有一个名为"测试报告";在一个组织之下。存储库有一个执行工作流并上传工件(HTML(的操作。我还有十个名为";Dev Repos";在同一组织下。

有没有一种方法可以在任何";开发人员回购"?

  • 触发";测试报告";工作流。";Dev Repos";应显示处理工作流状态
  • 一旦";测试报告";工作流完成;测试报告";应该出现在";Dev Repos";推的地方

注意:使用本机方法而不是第三方插件会很好:(


编辑I

以下是触发";测试报告";从";Dev Repos";。

name: CI
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Trigger Test Repo workflow
run: |
response = $(curl -H "Accept: application/vnd.github+json" -H "Authorization: token ${{ secrets.PERSONAL_ACCESS_TOKEN }}" --request POST --data '{"ref": "main"}' https://api.github.com/repos/{{organization}}/{{repository}}/actions/workflows/{{workflow-file}}.yml/dispatches)

然而,外部动作(包括@VonC建议的动作(不会触发来自";Dev Repos";到";测试报告";。这些动作甚至没有在";Dev Repos";。他们只是看起来很成功。

您可以尝试GitHub操作"触发外部工作流";以便使用CCD_ 1事件从另一存储库触发工作流。

on: [push, workflow_dispatch]
jobs:
trigger:
runs-on: ubuntu-latest
name: "📦 Trigger Project Test"
steps:
- uses: passeidireto/trigger-external-workflow-action@main
env:
PAYLOAD_AUTHOR: ${{ github.author }}
PAYLOAD_REVISION: "3"
with:
repository: my-org/my-repo
event: doc_update
github_pat: ${{ secrets.pat_with_access }}

确保您的github_pat在目标存储库上具有workflow作用域(测试(。

然后您可以使用action-gh-release在开发人员存储库中发布测试包
请参阅"如何在GitHub上将构建的工件从一个仓库发布到另一个仓库"来自Oyster Lee(也在Stack Overflow上(

# workflow.yml
# a lot code at the top
# ...
release:
steps:
- name: Release
uses: softprops/action-gh-release@v1
with:
repository: ${{ secrets.owner }}/${{ secrets.repo }}
token: ${{ secrets.CUSTOM_TOKEN }}

最新更新