8

我正在尝试使用标准 AWS 工具创建以下 CI 流程:在创建或更新 Github 中的拉取请求时运行提交的构建。或者在我的命令上运行任何分支的构建。与 Codeship、Travis 和许多其他 CI 服务提供的非常相似。

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

4

4 回答 4

5

如果您希望将构建作为 PR 的一部分简单地运行,CodeBuild 现在直接支持构建 GitHub 拉取请求(无需 Lambda 中间步骤)。要使用 CodePipeline 作为 PR 的一部分运行更多步骤,您仍然需要按照其他答案的建议设置一些脚手架。 https://aws.amazon.com/about-aws/whats-new/2017/09/aws-codebuild-now-supports-building-github-pull-requests/

于 2017-09-28T04:41:18.717 回答
4

CodePipeline 支持与 GitHub 和 CodeBuild 的基本、完全托管的集成,如与 AWS CodePipeline 的产品和服务集成中所列。通过这些集成,可以在将提交推送到 GitHub 上的分支时使用 CodeBuild 和 CodePipeline 来运行提交的构建。有关将 CodeBuild 与 CodePipeline 集成为操作提供程序的详细信息,请参阅将 AWS CodePipeline 与 AWS CodeBuild 结合使用以运行构建,有关将 Github 与 CodePipeline 作为操作提供程序集成的详细信息Build,请参阅四阶段管道教程Source

目前,官方 CodePipeline 集成不支持 Github 中的 Pull Request 功能,您没有忽略任何内容。对于一个有趣的 AWS 生态系统开源项目(还不是 v1.0),它确实支持 GitHub Pull Request 集成(虽然还不是 CodePipeline),您可能需要查看LambCI

于 2016-12-24T05:43:22.563 回答
2

看起来这可以通过使用 Lambda 和 S3 手动完成 - https://aws.amazon.com/blogs/devops/integrating-git-with-aws-codepipeline/

当提交被推送到存储库时,Webhooks 通过发出 HTTP POST 来通知远程服务。AWS Lambda 通过 Amazon API Gateway 接收 HTTP POST,然后下载存储库的副本。它将存储库的压缩副本放置到版本化的 S3 存储桶中。然后 AWS CodePipeline 可以使用 S3 中的 zip 文件作为源;每当更新 Git 存储库时都会触发管道。

于 2016-12-05T20:50:08.983 回答
-2

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

PR 构建通过截图

如果您想自己构建一些东西,您可以在 GitHub 上进行新的集成,该集成使用 webhook 功能来触发 lambda 函数,该函数进而触发您的 CodeBuild 作业或将工件推送到 S3 以启动 CodePipeline。

完全披露我是这项服务的作者

于 2017-04-13T15:16:01.707 回答