来自GitHub的代码不会进入Jenkins - AWS CodePipeline与Jenkins和Github的集成

时间:2016-05-26 01:21:01

标签: github jenkins aws-codepipeline

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

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

当我使用EC2实例中的Jenkins工作区检查时,项目的工作区为空

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

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

非常感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

构建触发器部分,您选择了投票SCM 吗?

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

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

答案 1 :(得分:0)

首先 - 确保在EC2实例上运行的Jenkins具有IAM角色及其与AWS Code Pipeline执行操作的相关权限。

第二件事 - 在“构建触发器”部分,选择轮询SCM ,然后在计划中键入以空格分隔的五个星号。

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

答案 2 :(得分:0)

这是一个老问题但有同样的问题。经过相当多的研究,我发现在我的设置中,缺少输入和输出工件名称。

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

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

我猜这个问题发生在我身上,因为我开始使用两步管道,然后在之后添加了构建过程 - 如果在创建管道之前没有准备好Jenkins服务器,也可能会发生这种情况那个阶段以后。