前言

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
  • 编辑构建命令,这个一般默认的就好,如下:
    1
    mvn -B clean package -Dmaven.test.skip=true -Dautoconfig.skip
    3,构建物上传配置
  • 制品名称填写,这个很关键,是我们最后构建出来的jar包的名称
  • 打包路径填写,同样很关键,我这个工程的target放在application里的,所以我的地址为:application/target/
主机部署配置

1,填写好任务名称,钩上“部署时下载制品”,并在制品输入项选中我们上面配置的制品

2,添加主机,我这里选中的是“自有主机”,其实也是阿里云的,只不过在另一个账号下而已,它这里的阿里云ecs方式添加只能添加本账号下的,所以迫不得已[笑哭]。
这个添加方式我觉得也做的很亲民,只需要将它生成的一串命令copy到自己的主机上执行下即可。
添加主机

3,部署配置

  • 下载路径:/home/admin/app/package.tgz
  • 执行用户:root
  • 部署脚本:我单独写了一个启动脚本放在了服务器上,所以直接执行解压文件执行脚本即可,命令如:
    1
    2
    tar -zxvf /home/admin/app/package.tgz -C /home/pro-mall/
    sh /root/c.sh restart
    4,任务插件配置

任务插件有钉钉机器人、邮件和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完成触发

运行图例:
添加主机