作者:欠你的情意 | 来源:互联网 | 2023-08-21 01:55
将Jenkins与GitHub集成有多种方法
方法1)通过将Jenkins中生成的公钥文件复制到GitHub帐户,启用GitHub和Jenkins之间的ssh通信。这是一项任务。
对于任何管道,请使用任何GitHub url(例如find -iname ngrok
),并使用Github插件添加相应的管道配置
因此,Jenkins文件只需要ssh://git@github.com/account/repo.git
签出
方法2)通过生成令牌为每个新仓库添加webhook来启用https通信,并在GitHub和Jenkins之间启用https通讯。但是,对于在GitHub中创建的每个新存储库,都应重复这种方法。
我们正在生产中使用GitHub存储库...
在生产环境中,GitHub与Jenkins集成的最佳实践是什么?
除非您在谈论本地GitHub Enterprise,否则您还可以使用GitHub Action替代方法。
- 使用built-in CI/CD(其中确实包含embedded Jenkins Single-shot(幻灯片42))。
- 或者使用
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"
,
基本上都是两件事。
第一种方法允许您设置凭证以使用Jenkins检出并将源代码推送到GitHub。第二种方法使您可以在存储库中检测到更改时设置自动构建触发器。
总而言之,第一个是构建获取源代码所必需的,而第二个是可选的,因为您可以手动触发构建,尽管代码推送的自动触发是持续集成所固有的。另外,您不必为每个存储库单独添加webhooks。而是在组织级别添加一次,以覆盖该组织中的所有存储库,包括任何新添加的内容。