0

我通过 Jenkins 中的 AWS Codepipeline 插件将我的 GitHub 存储库与 AWS Codepipeline 以及与 Jenkins 集成。Jenkins 安装在 EC2 服务器中。我为持有我的 Jenkins 的 EC2 实例创建了一个 IAM 角色。我还将 AWS CodePipeline Publisher 设置为构建后操作。

但是,我的 GitHub 代码被 AWS Codepipeline 成功接收(源阶段成功),但构建阶段在 1 小时后失败并出现超时错误。

当我检查 EC2 实例中的 Jenkins 工作区时,该项目的工作区是empty

也就是说,从 GitHub 取来的代码不会被 AWS Codepipeline 放到 Jenkins 的工作区中。

这是为 Jenkins 启用安全性的问题吗?但实际上我也尝试禁用安全性。但我得到了同样的错误。

非常感谢您的帮助。

4

3 回答 3

0

Build Triggers部分,您选择Poll SCM吗?

您可以在此处配置 Jenkins 轮询 AWS CodePipeline 以获取新任务的频率。例如:(H/5 * * * *每 5 分钟一次)。

另一个想到的是凭据问题。如果您打开 Jenkins 项目,左侧​​“配置”下方应该有一个AWS CodePipeline 轮询日志链接,如果插件无法轮询,您应该会在此处看到一个错误。

于 2016-07-07T00:42:25.000 回答
0

这是一个老问题,但有同样的问题。经过大量研究,我发现在我的设置中,输入和输出工件名称丢失了。

检查/修复问题的步骤 您需要安装 aws cli。使用: aws codepipeline get-pipeline --name [管道名称] > pipeline.json 打开管道并确认 1. 源阶段的输出工件与构建阶段的输入工件相同。2. 构建阶段的输出工件与 Beta(或任何您的部署阶段)阶段的输入工件相同。

您可以通过转到 S3 来检查一切是否正常。在代码管道的存储桶中,您应该会看到一个与源阶段中的输出工件同名的文件夹。在其中,将有各种 zip 文件。下载一个并解压缩以检查从 GitHub 上传的内容是否正确。

我猜这个问题发生在我身上,因为我从一个 2 步管道开始,然后添加了构建过程 - 如果您在创建管道之前没有准备好 Jenkins 服务器,因此您稍后放置该阶段,也可能发生在您身上.

于 2016-10-19T07:56:06.067 回答
0

第一件事 - 确保在 EC2 实例上运行的 Jenkins 具有 IAM 角色及其相关权限,以使用 AWS Code Pipeline 执行操作。

第二件事 - 在 Build Triggers 部分下,选择Poll SCM并在Schedule中键入由空格分隔的五个星号。

请点击链接了解更多详情 http://docs.aws.amazon.com/codepipeline/latest/userguide/getting-started-4.html#getting-started-4-get-instance

于 2016-10-04T05:33:19.370 回答