在 CircleCI 工作流或作业之后触发 Github Action

Posted

技术标签:

【中文标题】在 CircleCI 工作流或作业之后触发 Github Action【英文标题】:Trigger Github Action after CircleCI workflow or job 【发布时间】:2021-07-23 13:55:30 【问题描述】:

我想设置 github 操作以便对 docker 映像执行安全扫描。但是,我要扫描的图像的构建和推送是由 CircleCI 完成的。因此,在执行安全扫描之前,我需要确保图像已正确构建并推送到我的存储库中。

我知道存在触发 CircleCI 作业的操作,但有什么方法可以触发我从 Circle CI 执行 Github 操作?

感谢您提供的答案或任何解决方法:)

【问题讨论】:

【参考方案1】:

您可以使用 CircleCI 管道中的 repository dispatch event 来启动存储库工作流程(通过 CURL 或通过脚本)。

在这种情况下,您的 Github 存储库工作流文件将需要一个 repository_dispatch 事件来触发它,以执行您的安全扫描作业。

调度请求示例

curl \
 -X POST \
 -H "Accept: application/vnd.github.v3+json" \
 https://api.github.com/repos/<USERNAME>/<REPOSITORY-NAME>/dispatches \
 -d '"event_type":"event_type"'

工作流触发器示例

on: [repository_dispatch]

jobs:
  scan:
   runs-on: ubuntu-latest
   steps:
     - name: security scan
       run:|
        ...

【讨论】:

不知道这个 Github 功能。似乎回答了我的问题,我将尝试实现它,看看它是否正确运行。我曾想过通过在 animage 上安装 Github 客户端并在我的工作中使用它来触发操作来实现类似的解决方案,但您的解决方案似乎更快。谢谢你的回答:) 您甚至可以使用它来触发不同 Github 存储库之间的工作流。有任何问题欢迎随时联系我?

以上是关于在 CircleCI 工作流或作业之后触发 Github Action的主要内容,如果未能解决你的问题,请参考以下文章

如何在 circleci 作业中执行“docker run”命令

Jenkins 也为共享库更改运行轮询或推送触发器作业

CircleCI:跳过整个工作流程

Circleci:如何根据 git release 进行部署(发布一个标签)

Circle ci 触发构建拉取请求创建或更新

Circle Ci:第二份工作从未开始过?