【问题标题】:GitHub integration with JenkinsGitHub 与 Jenkins 的集成
【发布时间】:2019-11-25 08:17:27
【问题描述】:

将 Jenkins 与 GitHub 集成有多种方法

方法 1) 通过将 Jenkins 中生成的公钥文件复制到 GitHub 帐户来启用 GitHub 和 Jenkins 之间的 ssh 通信。这是一次任务。

对于任何管道,获取任何 GitHub 网址(比如 ssh://git@github.com/account/repo.git)并使用 Github 插件为相应的管道配置添加

所以,Jenkins 文件只需要checkout SCM 即可结帐

方法 2) 通过生成令牌为每个新的 repo 添加 webhook 来启用 https 通信,并启用 GitHub 和 Jenkins 之间的 https 通信。但是对于在 GitHub 中创建的每个新存储库,都应该重复这种方法。

我们正在生产中使用 GitHub 存储库...

在生产环境中 GitHub 与 Jenkins 集成的最佳实践是什么?

【问题讨论】:

    标签: jenkins github ssh webhooks


    【解决方案1】:

    两者基本上是两种不同的东西。

    第一种方法允许您设置凭据以使用 Jenkins 签出并将源代码推送到 GitHub。第二种方法允许您在存储库中检测到更改时设置自动构建触发器。

    总之,第一个对于构建获取源代码是强制性的,而第二个是可选的,因为您也可以手动触发构建,尽管代码推送的自动触发器是持续集成所固有的。此外,您无需为每个存储库单独添加 webhook。而是在组织级别添加一次,以涵盖该组织中的所有存储库,包括任何新增内容。

    【讨论】:

    • 我认为你是对的.. 但第二种方法需要为每个 repo 配置 webhook。不是吗?
    • 可以为添加的任何新仓库自动启用 webhook 触发器吗?在 GitHub 中...
    • @overexchange 是的,如果您在组织级别添加 webhook(在 github.com/[organization] > Settings > Hooks 下),所有现有存储库和将来添加到组织的新存储库将自动被 GitHub 覆盖以进行 webhook 交付。
    • 到目前为止我还没有与 Gitlab 合作过,所以无法对这部分发表评论。很抱歉。
    【解决方案2】:

    除非您谈论的是本地 GitHub Enterprise,否则您还可以使用 GitHub Action 的替代方法。

    • 或使用appleboy/jenkins-action,这是一个触发 Jenkins 作业的 GitHub 操作。
      这样,您就可以调用自己的 Jenkins 服务器,但无需声明 webhook 并为所述 webhook 实现侦听器。

    即:

    name: trigger jenkins job
    on: [push]
    jobs:
    
      build:
        name: Build
        runs-on: ubuntu-latest
        steps:
        - name: trigger single Job
          uses: appleboy/jenkins-action@master
          with:
            url: "http://example.com"
            user: "example"
            token: ${{ secrets.TOKEN }}
            job: "foobar"
    

    【讨论】:

    • 一些团队在 GitHub 中维护私有 repo 和一些企业许可证
    猜你喜欢
    • 1970-01-01
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    • 2012-05-28
    • 2020-05-08
    • 2014-07-08
    相关资源
    最近更新 更多