2016-12-04 17 views
7

我想要做的是使用标准AWS工具创建一个以下CI流程:创建或更新Github中的合并请求时运行构建提交。或者在我的命令上运行任何分支的构建。与Codeship,Travis和许多其他CI服务提供的内容非常相似。是否可以结合使用AWS CodeBuild和CodePipeline来构建所描述的CI工作流程?

CodeBuild + CodePipeline有可能吗?我注意到我必须在CodePipeline中指定确切的分支,不幸的是,无法找到如何将Github Pull请求集成到其中。也许我忽略了它?

+0

CI暗示构建是自动触发的。我没有看到如何在CodeBuild或CodePipeline中设置自动触发器。如此迷茫。 – Levitron

+0

一旦我将分支添加到代码提交中,它确实似乎触发了管道中的构建。我也很好奇如何在合并请求中自动执行此操作。在詹金斯,我们使用'$ {sha1}'。奇怪的是,在Github中,我看不到任何集成或webhooks,尽管CodePipeline清楚地看到了变化。 –

回答

2

它看起来像这样,可以通过使用Lambda和S3有些手工完成 - https://aws.amazon.com/blogs/devops/integrating-git-with-aws-codepipeline/

网络挂接通过在commit被推到存储库发出HTTP POST通知远程服务。 AWS Lambda通过Amazon API Gateway接收HTTP POST,然后下载存储库的副本。它将存储库的压缩副本放入版本化的S3存储桶中。 AWS CodePipeline可以使用S3中的zip文件作为源代码;只要Git存储库更新,管道就会被触发。

+1

哦...太多的移动部件要维护。不,谢谢,亚马逊,我宁可坚持Codeship然后:) – elgris

+0

本博客文章介绍了如何将AWS CodePipeline与第三方Git-repository webhooks('GitHub Enterprise,Bitbucket,GitLab或任何其他Git服务器')集成,并且与GitHub的Pull Request功能无关。 – wjordan

+0

来自未来的问候!事实上,您现在可以(截至2017年秋季)选择Github作为CodeBuild源代码,正如@Clare Liguori所述。这会在您推送回购时自动运行AWS Codebuild版本,并根据需要更新构建状态。请参阅AWS Codepipeline上的注释,但我知道CodeBuild Just Works ... – RyanWilcox

3

CodePipeline支持与GitHub和CodeBuild进行基本的完全托管集成,如Product and Service Integrations with AWS CodePipeline中所列。通过这些集成,当Code提交被推送到GitHub上的分支时,可以使用CodeBuild和CodePipeline来运行构建提交。有关将CodeBuild与CodePipeline集成为Build动作提供者的详细信息,请参阅Use AWS CodePipeline with AWS CodeBuild to Run Builds,有关将Github与CodePipeline集成为Source动作提供者的详细信息,请参阅Four-Stage Pipeline Tutorial

目前,官方CodePipeline集成不支持Github中的Pull Request功能,您没有忽视任何内容。对于支持GitHub合并请求集成(尽管not yet CodePipeline)的有趣的AWS生态系统开放源代码项目(尚未v1.0),您可能需要查看LambCI

0

您可以尝试https://www.deploytoproduction.com以获取Github Pull Request构建状态与AWS CodeBuild的集成。对于单个Github存储库而言,免费提供多个存储库的订阅计划。 该服务目前尚未与CodePipeline集成,但即将推出。

PR Build Passed Screenshot

如果你想建立自己的东西,你可以做一个使用网络挂接功能触发lambda函数这反过来又触发您CodeBuild工作或推动的假象,以S3开始在GitHub上一个新的整合一个CodePipeline。

充分披露,我该服务

3

CodeBuild现在直接支持构建GitHub的引入请求(不LAMBDA中间步骤),如果你正在寻找简单地运行构建作为部分的作者PR。为了将CodePipeline作为PR的一部分运行更多步骤,您仍然需要根据其他答案的建议设置一些脚手架。 https://aws.amazon.com/about-aws/whats-new/2017/09/aws-codebuild-now-supports-building-github-pull-requests/

+0

欢迎您提供解决方案的链接,但请确保您的答案在没有它的情况下很有用:[在链接周围添加上下文](// meta.stackexchange.com/a/8259),所以你的同行用户将会知道它是什么以及它为什么在那里,然后引用你链接的页面中最相关的部分,以防目标页面不可用。 [只有链接的答案可能会被删除。](// stackoverflow.com/help/deleted-answers) – paper1111

+0

虽然这个链接可能回答这个问题,但最好在这里包含答案的重要部分并提供该链接供参考。如果链接页面更改,则仅链接答案可能会失效。 - [来自评论](/ review/low-quality-posts/17473286) – sa77

+0

这不会提供问题的答案。要批评或要求作者澄清,请在其帖子下方留言。 - [来自评论](/ review/low-quality-posts/17473286) – Patrick

相关问题