使用Jenkins可以构建EDAS应用的持续集成方案。该方案涉及下列计算机语言或开发工具,阅读本文您可以对下述的语言或工具有一定的理解。本文介绍如何使用Jenkins创建持续集成。
前提条件
-
获取阿里云的AccessKey ID和AccessKey Secret。
- 使用已经开通了EDAS服务的主账号登录阿里云官网。
- 进入Access Key控制台,创建AccessKey ID和AccessKey Secret。
- 在使用Jenkins自动部署应用之前,需要先在EDAS控制台中创建并部署应用。
- 登录EDAS控制台。
- 部署应用。具体操作,请参见应用创建和部署概述(ECS)和创建和部署应用概述(K8s)。
如果已经创建了应用,请忽略此步。
- 在左侧导航栏,单击应用名称进入详情页面,获取应用ID的字段内容。
- 使用GitLab托管您的代码。您可以自行搭建Gitlab或者使用阿里云Codeup。
本文使用通过自行搭建的GitLab做演示,关于Gitlab的更多信息,请参见GitLab。
- 了解并使用Jenkins。关于Jenkins的更多详细信息,请参见Jenkins官网。
背景信息
工具 | 说明 |
---|---|
Maven | Maven是一个项目管理和构建的自动化工具。 |
Jenkins | Jenkins 是一个可扩展的持续集成引擎。 |
GitLab | GitLab 是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。 它拥有与GitHub类似的功能,能够浏览源代码,管理缺陷和注释。 |
配置项目
修改项目配置,添加toolkit-maven-plugin及部署信息,具体操作,请参见使用toolkit-maven-plugin插件升级应用(ECS集群)。您在修改完项目配置后,建议在本地使用Maven构建验证配置是否正确。
安装和配置Jenkins
配置Gitlab的Web Hook,实现自动构建
配置正确后,提交变更到GitLab
如果上述步骤配置正确,这次提交会触发一次GitLab Hook。Jenkins在接受到这个Hook后会构建您的Maven项目,并在构建结束时调用EDAS POP API脚本触发部署。
提交部署成功输出的日志信息(
)。15:58:51 [INFO] Deploy application successfully!
15:58:51 [INFO] ------------------------------------------------------------------------
15:58:51 [INFO] BUILD SUCCESS
15:58:51 [INFO] ------------------------------------------------------------------------
15:58:51 [INFO] Total time: 24.330 s
15:58:51 [INFO] Finished at: 2018-12-25T15:58:51+08:00
15:58:51 [INFO] Final Memory: 23M/443M
15:58:51 [INFO] ------------------------------------------------------------------------
15:58:51 Finished: SUCCESS
如果部署失败,可以登录EDAS控制台,在左侧导航栏中单击 ,在应用列表页面单击具体应用名称,进入应用详情页面。在左侧导航栏单击变更记录来查看此次部署任务的执行过程。
创建多模块工程的Jenkins任务
创建多模块工程的Jenkins任务和安装和配置Jenkins第5步基本相同,只需要调整下调用顶层Maven目标。如果工程为多模块工程,想在Jenkins中部署子模块的话,那么需要在父模块中调用mvn clean install
命令,然后在子模块中调用mvn clean package toolkit:deploy
命令。以Demo工程为例,工程结构如下:
sh-3.2# tree -L 1 carshop
carshop
├── detail
├── itemcenter
├── itemcenter-api
└── pom.xml
其中,detail、itemcenter、itemcenter-api为子模块,现在想部署itemcenter模块的话,那么需要在父工程中设置一个clean install构建目标,然后在itemcenter模块中设置clean package toolkit:deploy
构建目标。
