我将我的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安全性的问题吗?但实际上我也尝试过禁用安全性。但我得到了同样的错误。
非常感谢您的帮助。
答案 0 :(得分:0)
在构建触发器部分,您选择了投票SCM 吗?
您可以在此配置Jenkins为新任务轮询AWS CodePipeline的频率。例如:H/5 * * * *
(每5分钟一次)。
其他想到的是凭证的问题。如果您打开Jenkins项目,左侧“配置”下方应该有一个 AWS CodePipeline轮询日志链接,如果插件无法轮询,您应该会看到错误。
答案 1 :(得分:0)
首先 - 确保在EC2实例上运行的Jenkins具有IAM角色及其与AWS Code Pipeline执行操作的相关权限。
第二件事 - 在“构建触发器”部分,选择轮询SCM ,然后在计划中键入以空格分隔的五个星号。
答案 2 :(得分:0)
这是一个老问题但有同样的问题。经过相当多的研究,我发现在我的设置中,缺少输入和输出工件名称。
检查/解决问题的步骤 你需要安装aws cli。 使用:aws codepipeline get-pipeline --name [管道名称]> pipeline.json 打开管道并确认 1.源阶段中的输出工件与构建阶段中的输入工件相同。 2.构建阶段的输出工件与Beta(或任何部署阶段)阶段的输入工件相同。
您可以通过转到S3来检查一切是否正常。在代码管道的存储桶中,您应该看到一个与源阶段中的输出工件同名的文件夹。在这里,会有各种zip文件。下载一个并解压缩以检查GitHub的上传是否正确。
我猜这个问题发生在我身上,因为我开始使用两步管道,然后在之后添加了构建过程 - 如果在创建管道之前没有准备好Jenkins服务器,也可能会发生这种情况那个阶段以后。