从Jenkins扫描以进行成功的github动作

问题描述

我有一个GitHub动作,该动作在合并到master时触发

name: master_stable

on:
  push:
    branches:
      - master

以下是该工作流程完成的任务:

  • 运行测试用例以检查主服务器是否稳定
  • 如果主服务器稳定,它将构建Docker映像并将其上传到ECR
  • 触发Jenkins管道,该管道会将此映像部署到Kubernetes集群

现在我的Jenkins机器位于私有VPC后面,无法从Github调用

我要完成的工作是建立一个詹金斯(Jenkins)工作,它将继续扫描特定的Github动作,并在找到一个成功的运行时触发自身。类似于它在Github存储库中检查PR和标签的方式。

詹金斯有办法做到这一点吗?我可以在Jenkins上使用Github Actions的拉动机制吗?

解决方法

您可以使用github actions api获取有关您的工作流程的信息。只需在github中创建一个令牌并通常从jenkins调用api

解决方案1: 按工作流文件名或ID获取工作流列表(如果有) https://developer.github.com/v3/actions/workflow-runs/#list-workflow-runs并获得

解决方案2: 按仓库名称获取工作流程列表 https://developer.github.com/v3/actions/workflow-runs/#list-workflow-runs-for-a-repository

如果您需要它, 如何在github中创建令牌 https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token