我有一个 Gradle 项目,它由一个主项目和另外两个项目组成,其中包括使用 includeFlat
指示。这 3 个项目中的每一个在 GitHub 上都有自己的存储库。为了构建它,我将所有 3 个项目 check out 到一个公共(public)的顶级文件夹中,然后 cd
进入主项目并运行gradle build
.而且效果很好!
现在我需要将生成的应用程序部署到 AWS EB(Elastic Beanstalk),当我在本地生成工件然后手动部署它时,它也很有效。我想自动化这个过程,所以我尝试使用 CodePipelines + Jenkins 来设置它,如 this document 中所述。为 Gradle 进行了调整。
问题是,如果我在管道中指定 3 个源,我最终会将我的项目提取到彼此之上,从而在 Jenkins 工作区中造成困惑。我需要以某种方式将每个项目配置为输出到 Jenkins 工作区中自己的目录,我只是看不到这样做的方法(至少在 UI 中)
然后,当然,即使我实现了我想要的,我也需要以某种方式 cd
进入主目录运行gradle build
我又不知道该怎么做
附言@Phil 提出了很好的建议,但不幸的是 CodePipeline does not currently support Git 子模块或子树
最佳答案
当 3 个存储库中的任何一个发生更改时,我将开始共同构建。假设有 5 分钟的延迟,即使对不止一个 repo 进行了更改,也可以进行单个构建。
除了使用 eb deploy
之外,我看不到其他处理部署的好方法。 ...旧方式...请在您的 Jenkins 机器上安装 aws 工具。创建成功构建时触发的部署作业。并将 bash 脚本放在那里进行部署。请提供有关您的部署的更多详细信息,这样我可以帮助部署脚本。
关于github - 使用 AWS CodePipeline 在 Jenkins 中构建多个 Gradle 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46614349/