将Github企业版与AWS Codepipeline集成

9

我在一个[由公司托管的]GitHub企业站点上有一个存储库,我需要使用CodePipeline服务在AWS中将其集成到CI/CD流水线中。然后,CodePipeline服务将连接在EC2实例上运行的Jenkins服务。我正在遵循AWS文档进行操作。

请注意,这是一份企业GitHub repo,而不是托管在GitHub.com上。

我无法在“创建流水线”向导中连接到GitHub Enterprise站点。选择GitHub作为来源只允许我连接到GitHub.com,而不能连接到我们组织的企业站点。

如何连接企业GitHub站点,以便我可以将该repo添加为我的codepipeline源?


你的 GitHub 企业版托管在哪里? - Sid Malani
它托管在我的组织内部,使用我们自己的硬件。 - sidx64
1
看起来在Pipeline中确实没有支持GitHub企业版,尽管CodeBuild有一个支持。您可以潜在地使用Code Build来弥合这个差距。在appspec.yaml中,您可以编写AWS或其他命令来实现这一点。 - Sid Malani
2
终于有了官方集成: https://aws.amazon.com/about-aws/whats-new/2020/09/aws-codepipeline-supports-github-enterprise-server - Pedreiro
4个回答

4
更新:终于发布了一个集成版,使得github企业版可以与AWS Codepipeline一起使用。请参见Pedreiro的答案
如Sid Malani在评论中所说,没有直接或简单的方法可以在AWS CodePipeline中使用私有托管的GitHub Enterprise存储库。
一种方法是使用CodeBuild,它允许添加自定义的github存储库,然后可以在CodePipeline中使用。但是这只应该被视为一个权宜之计。
感谢Sid Malani提供的替代策略。

2
我怀疑 AWS 不会很快推出此功能(希望我错了),因为解决方法已经有详细记录并且可以正常工作。这个方法的要点可以在这里找到,我将其总结如下:
  1. 创建一个 CodeBuild 项目(可以将 GitHub Enterprise 作为源),该项目基本上只监听开发或主分支的推送事件(Webhook),并将源代码的 .zip 文件输出到 S3 存储桶中。
  2. 使用 S3 存储桶作为 CodePipeline 的源。


0

有一种方法可以将第三方Git repos与AWS CodePipeline集成。 AWS建议以下过程。它使用S3桶和API网关以及Lambda来连接Github企业存储库到CodePipeline。虽然不是理想的,但是它可以工作。

非官方:我听说CodePipeline对Github Enterprise的支持将在2019年下半年推出。


201...2019年?希望如此 :-) - STW
1
@STW 感谢指出笔误。我也希望如此 :) - Ehsan Ab
@mbunch 我仍然没有在CodePipeline的源步骤中看到Github企业版作为一个选项? - Shanika Ediriweera
@ShanikaEdiriweera 我可能有点过于急躁了,我也没有在“源”下看到它,但我在“管道”>“管道”下看到了它(对于混淆我感到抱歉)。 - mbunch
1
@mbunch GitHub Enterprise不同于GitHub。GHE本质上是GitHub的私有托管版本。截至目前,CodePipeline不支持GHE。 - David Cuthbert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接