前言
在前面三章中,我们已经完成了一整个发布流程的闭环,但还不够,我们要做成工程化,可以指定项目,指定分支,指定发布的环境.
参数化构建
参数化构建,故名思意,就是根据远程URL带入的参数进行构建,在构建时拿取的是参数里的值.这样就能做到,我一个任务,可以完成多个功能.
打开我们之前的项目配置,勾选此项目为参数构建的选项
添加参数,我们选择类型为string类型的
我们添加branch和env两个参数,前者是要发的分支,后者是环境,默认值为master和production
在源码管理里,把批定的分支设为我们的参数变量
在构建命令里写入我们参数化的shell命令
#!/bin/sh -l
cd /Users/zfy/.jenkins/workspace/myItem
yarn
rm -rf dist
case $env in
dev)
{
echo "dev:$env"
yarn devBuild
}
;;
production)
{
echo "procuction:$env"
yarn build
}
;;
*)
exit
;;
esac
这里前面的命令与前一章里的命令一致,不同的是在构建的时候,根据入参的不同,运行不同的构建命令.
完成后,我们访问地址http://xxx.xxx.xxx.xxx:8080/buildByToken/buildWithParameters?job=myItem&token=xxxx&branch=xx&env=xx,就可以在任务列表里看到任务已经开始在启动构建了.
到此,我们完成了参数化构建,那么如何发到对应的测试服务器和线上服务器呢,甚至于同环境的多台服务器,目前笔者还没有遇到要发到多台服务器的项目,但发布到不同环境的服务器上肯定是要有的
打开项目的配置,找到我们配置服务器的地方,点击高级选项
在label里输入dev的名称
同理添加production的服务器
点击最下方的高级
勾选通过参数来发布选项,输入参数名server
保存配置,访问地址http://xxx.xxx.xxx.xxx:8080/buildByToken/buildWithParameters?job=myItem&token=xxxx&branch=xx&env=xx&server=xx,就可以选择不同的项目,不同分支,不同的环境并发布到不同的服务器上.