GitHub与Jenkins的集成

时间:2019-11-24 16:57:02

标签: jenkins github ssh webhooks

将Jenkins与GitHub集成有多种方法

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

对于任何管道,请使用任何GitHub url(例如find -iname ngrok),并使用Gi​​thub插件添加相应的管道配置

因此,Jenkins文件只需要ssh://git@github.com/account/repo.git签出

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

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

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

2 个答案:

答案 0 :(得分:1)

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

https://user-images.githubusercontent.com/1872314/47345918-3b280e80-d6ac-11e8-9f44-8cc02754f691.png

  • 或者使用appleboy/jenkins-action,这是一个触发Jenkins工作的GitHub Action。
    这样,您可以调用自己的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"

答案 1 :(得分:1)

基本上都是两件事。

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

总而言之,第一个是构建获取源代码所必需的,而第二个是可选的,因为您可以手动触发构建,尽管代码推送的自动触发是持续集成所固有的。另外,您不必为每个存储库单独添加webhooks。而是在组织级别添加一次,以覆盖该组织中的所有存储库,包括任何新添加的内容。

相关问题