阿里云-云效流水线实践CI/CD
Comment前言
CI/CD如何实践?可以通过很多方式,一般公司会自己使用jenkins搭建自己的流水线来完成。不过也有很多云上方案,我们今天来看看阿里云效的流水线如何实践。
配置步骤
新建流水线
首先登录云效后台(点击此链接进入云效控制台),按照流程新建一个企业,然后进入企业选择流水线模块,点击新建流水线,选择一个流水线模版,本文演示使用的是java工程,所以我选择的是java模版 >> “测试、构建、部署到阿里云ESC/自有主机”。
选好模版之后,会直接跳转到流程配置的界面,针对模版进行相应的设置。
流程配置
添加代码源
因为是github托管,所以要先进行github账号授权,才能拉取到github仓库的代码,我们直接点击github图标,进行相应授权即可。
如果你是自己搭建的git仓库,也可以选择“通用git”的方式,同样很容易配置。
1,分支信息填写:填写代码仓库和分支信息。
2,开启代码源触发,这样后续只需要push代码即可完成流水线的自动构建发布
- 钩上“代码提交”,将WebHook地址复制出来备用,分支填“master”。
3,到 Github代码库配置WebHook,路径:代码库 >> Settings >> Webhooks
- 点击 Add Webhook
- 将 上一步复制的 WebHook 地址,填入 Payload URL
- 将 Content Type 选择为 “application/json”
- 选择 Just the push event
最后确认添加即可!
编辑页面图例:
配置代码检查和测试
这个环节,没有什么好配置的,已经帮你默认选择了java代码规约检查。你也可以添加其他任务步骤,如分支检查、代码覆盖率等任务步骤。
构建配置
1,任务信息:任务名称填写、构建集群选择
2,java构建配置
- 选择jdk版本,我选择的jdk1.8
- 编辑构建命令,这个一般默认的就好,如下:3,构建物上传配置
1
mvn -B clean package -Dmaven.test.skip=true -Dautoconfig.skip
- 制品名称填写,这个很关键,是我们最后构建出来的jar包的名称
- 打包路径填写,同样很关键,我这个工程的target放在application里的,所以我的地址为:application/target/
主机部署配置
1,填写好任务名称,钩上“部署时下载制品”,并在制品输入项选中我们上面配置的制品
2,添加主机,我这里选中的是“自有主机”,其实也是阿里云的,只不过在另一个账号下而已,它这里的阿里云ecs方式添加只能添加本账号下的,所以迫不得已[笑哭]。
这个添加方式我觉得也做的很亲民,只需要将它生成的一串命令copy到自己的主机上执行下即可。
3,部署配置
- 下载路径:/home/admin/app/package.tgz
- 执行用户:root
- 部署脚本:我单独写了一个启动脚本放在了服务器上,所以直接执行解压文件执行脚本即可,命令如:4,任务插件配置
1
2tar -zxvf /home/admin/app/package.tgz -C /home/pro-mall/
sh /root/c.sh restart
任务插件有钉钉机器人、邮件和webhook通知三种方式, 我选择的是钉钉通知,毕竟经常使用,所以push触达率高。
因为是写文章测试一下,为了方便,所以我直接在钉钉新建了一个一人也能用的场景群,步骤:
- 进入场景群,点击群聊右侧的智能群助手
- 选择添加机器人,“自定义-通过webhook接入自定义服务” 机器人
- 填写机器人名字,我直接写成了:“CI机器人”
- 选择安全设置,我使用的自定义关键词,然后填写了:“pro-mall”
- 最后,钩上协议,点击确认,将Webhook的url拷贝出来,填写到流水线的webhook地址上即可
效果图例:
基本信息配置
基本信息:流水线名称、环境、以及标签信息填写
成员信息:添加流水线的成员,已经默认添加了当前用户
触发设置
这里的设置有Webhook触发和定时触发两种选择,本文选择Webhook方式。
1,开启代码Webhook触发,将WebHook地址复制出来。
2,到 Github代码库配置WebHook
代码库 >> Settings >> Webhooks,点击 Add Webhook
将 Flow 流水线上复制的 WebHook 地址,填入 Payload URL
将 Content Type 选择为 “application/json”
选择 Just the push event
确认添加
任务触发
1,直接在云效流水线后台,点击运行手动触发
2,修改代码,push到github,通过webhook完成触发
运行图例:
- 本文作者:沙果栗子本文链接:https://32e.co/2020/03/14/ali-java-flow/版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!