Jenkins自动化部署
Jenkins学习笔记,设计cicd持续集成一些列环境搭建教程,图文并茂,旨在通过笔记既可搭建出适合企业的应用场景,同时也方便新手开始上手学习,请多关注点赞收藏,持续更新
Jenkins自动化部署
视频地址: https://ke.qq.com/course/3136585
笔记参考: https://www.it235.com/实用工具/持续集成/jenkins.html
一. Linux虚拟机安装
资源下载地址 链接:https://pan.baidu.com/s/1OFVRzCySbrzLs-P37Iw9gg 提取码:wiih
- 下载IOS文件
- 安装vmware
- 安装虚拟机
- 终端连接
二. Gitlab代码托管服务器安装
1. Gitlab简介
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源(基于MIT协议),与Github类似,可以注册用户,任意提交你的代码,添加SSHKey等等。不同的是,
GitLab是可以部署到自己的服务器上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发
,你总不可能把团队内部的智慧总放在别人的服务器上吧?简单来说可把GitLab看作个人版的GitHub。
2. Gitlab安装
1. 安装相关依赖
yum -y install policycoreutils openssh-server openssh-clients postfix
2. 启动ssh服务&设置为开机启动
systemctl enable sshd && sudo systemctl start sshd
3. 设置postfix开机自启,并启动,postfix支持gitlab发信功能
systemctl enable postfix && systemctl start postfix
4. 开放ssh以及http服务,然后重新加载防火墙列表
firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
如果关闭防火墙就不需要做以上配置
5. 下载gitlab包,并且安装
在线下载安装包:
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-12.4.2-ce.0.el6.x
86_64.rpm 或者
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.4.2-ce.0.el7.x86_64.rpm
安装:
rpm -i gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm 或者
rpm -i gitlab-ce-12.4.2-ce.0.el7.x86_64.rpm
6. 修改gitlab配置
vi /etc/gitlab/gitlab.rb
修改gitlab访问地址和端口,默认为80,我们改为82
external_url 'http://192.168.224.100:82'
nginx['listen_port'] = 82
7. 重载配置及启动gitlab
gitlab-ctl reconfigure
gitlab-ctl restart
8. 把端口添加到防火墙
firewall-cmd --zone=public --add-port=82/tcp --permanent
firewall-cmd --reload
启动成功后,看到以下修改管理员root密码的页面,修改密码后,然后登录即可
3. Gitlab配置
3.1 Gitlab添加组
使用管理员 root 创建组,一个组里面可以有多个项目分支,可以将开发添加到组里面进行设置权限,不同的组就是公司不同的开发项目或者服务模块,不同的组添加不同的开发即可实现对开发设置权限的管理
3.2 创建用户
创建用户的时候,可以选择Regular或Admin类型。
创建完用户后,立即修改密码
3.3 将用户添加到组中
选择某个用户组,进行Members管理组的成员
Gitlab用户在组里面有5种不同权限:
- Guest:可以创建issue、发表评论,不能读写版本库
- Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限
- Developer:可以克隆代码、开发、提交、push,普通开发可以赋予这个权限
- Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心开发可以赋予这个权限
- Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组组
长可以赋予这个权限
3.4 在用户组中创建项目
以刚才创建的新用户身份登录到Gitlab,然后在用户组中创建新的项目
3.5 源码上传到Gitlab仓库
下面来到IDEA开发工具,我们已经准备好一个简单的Web应用准备到集成部署。
我们要把源码上传到Gitlab的项目仓库中。
三. Jenkins安装
Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。
1. 主要配置
#配置增加chentf用户组
groupadd chentf
#创建jenkins用户,并指定刚才创建的用户组
useradd jenkins -g chentf
#给已经存在的用户jenkins指定组chentf
usermod -G chentf jenkins
#给用户设置密码
passwd jenkins
#删除用户
userdel jenkins
#删除用户组
groupdel chentf
#创建存放jenkins工具的目录,并指定权限,因jenkins后期构建比较占用磁盘,此处建议先挂载磁盘
mkdir -p /data/software #创建目录
chown -R jenkins:chentf /data/sofware #给创建的用户赋权限
# 切换jenkins用户,进入到software目录,并下载jenkins.war
$ su jenkins
$ cd /data/software/
# 如果下载较慢,建议采用迅雷下载,然后上传
$ wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
2. 安装java环境
- 下载jdk,上传至linux并解压
链接: https://pan.baidu.com/s/1Xd-zDEQDMc6Q0kwZ6o3PAA
提取码: bq6s
#解压下载的jdk文件
$ tar -zxvf jdk8u181.tar.gz
- 配置/etc/profile的内容
#编辑环境配置文件
$ vim /etc/profile
# 在最底部加入以下内容后保存并退出
# JDK 注意usr/local/java/路径根据自己实际安装路径进行修改
export JAVA_HOME=/usr/local/java/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- 使配置生效
#刷新环境配置文件
$ source /etc/profile
- 检测java环境信息
#检查jdk是否安装成功
$ java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
3. 启动jenkins
# 使用nohup命令启动,并指定日志文件
$ nohup java -jar /data/software/jenkins.war --httpPort=8777 --httpsPort=8778 > /data/software/jenkins.log 2>&1 &
使用tail命令查看启动日志,日志中会输出jenkins密码
#查看jenkins启动日志
$ tail -222f jenkins.log
4.开发8777端口供外网访问
如果是云服务器,开放安全组即可,如果是虚拟机在防火墙中加入8777端口并重载配置
阿里云服务器开发安全组
虚拟机在防火墙中加入8777端口并重载配置
# 开启防火墙8777端口
$ firewall-cmd --zone=public --add-port=8777/tcp --permanent
# 使配置生效
$ firewall-cmd --reload
# 防火墙扩展命令如下(云服务直接操作阿里云安全组即可)
(1)设置开机启用防火墙:systemctl enable firewalld.service
(2)设置开机禁用防火墙:systemctl disable firewalld.service
(3)启动防火墙:systemctl start firewalld
(4)关闭防火墙:systemctl stop firewalld
(5)检查防火墙状态:systemctl status firewalld
(1)查看防火墙状态:firewall-cmd --state
(2)重新加载配置:firewall-cmd --reload
(3)查看开放的端口:firewall-cmd --list-ports
(4)开启防火墙端口:firewall-cmd --zone=public --add-port=9200/tcp --permanent
命令含义:
–zone #作用域
–add-port=9200/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
注意:添加端口后,必须用命令firewall-cmd --reload重新加载一遍才会生效
(5)关闭防火墙端口:firewall-cmd --zone=public --remove-port=9200/tcp --permanent
5. 外网或宿主机访问浏览器地址
外网或宿主机访问浏览器地址http://ip地址:8777/
6. 中文设置
- 进入Manage Jenkins中,点击Manage Plugins
- 安装插件 Locale plugin , Localization: Chinese (Simplified) , Localization Support Plugin,如果失败就再安装一次
- 设置中文,如果没有Locale,可能是上一步中插件未安装
- 如果出现部分翻译,部分没翻译的现象,则删除插件。重启Jenkins(http://域名/jenkins/restart),再次安装插件(第一次安装只有部分翻译了)
- 如果安装新的插件,重启了服务,又变成部分汉化了
- 将语言设定为zh_US,Jenkins切换为英文。
- 调用restart重启Jenkins:http://域名/jenkins/restart。
- 再次语言设定为zh_CN,刷新即可
7. 忘记密码
- 进入到jenkins的工作目录,找到config.xml,我这里是/home/jenkins/.jenkins/config.xml
修改该配置文件useSecurity的节点值为false
<useSecurity>true</useSecurity>
- 重启jenkins项目后,再次访问jenkins站点
- 进入到系统管理
- 进入到用户列表,找到admin用户
- 使用新密码登录即
四. Jenkins安装(简单方式)
1 安装jdk
Jenkins需要依赖JDK,所以先安装JDK1.8
yum install java-1.8.0-openjdk* -y
安装目录为:/usr/lib/jvm
2. 安装Jenkins
安装文件:jenkins-2.190.3-1.1.noarch.rpm
1. 把安装包上传到192.168.66.101服务器,进行安装
rpm -ivh jenkins-2.190.3-1.1.noarch.rpm
2. 修改Jenkins配置
vi /etc/syscofig/jenkins
修改内容如下:
JENKINS_USER="root" # 注意该账号和linux管理员账号名称一致
JENKINS_PORT="8888"
3. 启动Jenkins
systemctl start jenkins
4. 打开浏览器访问
http://192.168.224.129:8888
注意:本服务器把防火墙关闭了,如果开启防火墙,需要在防火墙添加端口
5. 获取并输入admin账户密码
cat /var/lib/jenkins/secrets/initialAdminPassword
6. 跳过插件安装
因为Jenkins插件需要连接默认官网下载,速度非常慢,而且经过会失败,所以我们暂时先跳过插件安装
7. 添加一个管理员账户,并进入Jenkins后台
8. 开始使用Jenkins
3. 卸载jenkins
如何干净的卸载jenkins
这里使用一种最方便的卸载方法,因为我这里jenkins安装也是使用rpm命令安装的
1、rpm形式卸载
rpm -e jenkins
2、检查是否卸载成功
rpm -ql jenkins
3、彻底删除残留文件
find / -iname jenkins | xargs -n 1000 rm -rf
五. 常用插件安装
1. 修改下载插件地址
jenkins的所有插件安装后需要重启才能生效,由于Jenkins国外官方插件地址下载速度非常慢,所以可以修改为国内插件地址(清华大学源)
- 进入Manage Jenkins -> Manage Plugin -> Advanced 最下面有Update Site设置为: https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
- 修改服务器配置,进入jenkins安装目录,找到 /updates/default.json 文件(我这里是/home/jenkins/.jenkins/updates/default.json),将其中的 updates.jenkins-ci.org/download 替换成mirrors.tuna.tsinghua.edu.cn/jenkins,然后把www.google.com 修改为 www.baidu.com.
- 进入到default.json所在目录
cd /root/.jenkins/updates
- 使用如下命令进行替换
# 修改之前建议做下备份,养成备份好习惯,大家在公屏上输入 备份大法好
sed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
- 替换后使用http://IP地址:8777/restart重启jenkins
2. 安装皮肤插件
- simple theme好看的主题插件,首先安装插件simple theme,安装主题并重新启动Jenkins。转到Manage Jenkins–> Manage Plugins。单击available选项卡并搜索simple theme插件。
- 使用在线CSS样式
将打开后的内容,拷贝至主题配置中。系统设置 -> Theme,转到Manage Jenkins–> Configure并搜索Theme配置,然后点击新增:
CSS URL:在CSS字段中输入以下URL并保存,可以查看到效果(如果断网样式会失效)
http://afonsof.com/jenkins-material-theme/dist/material-teal.css
Extra CSS:在文本框内贴上CSS样式,在浏览器中打开上述样式的链接,并复制内容到文本框内一样能看到效果,而这种方式更加推荐,适用于没有网络的环境。
- Git Parameter Plug-In , 安装后可以选择按照 git tag 或者 branch 发布版本。
- NodeJS Plugin 安装后可以执行 npm 指令,打包和发布前端代码。
- SonarQube Scanner for Jenkins 安装后可以执行 sonar scanner 指令,跑 CI 时检查代码质量。
- Maven Integration plugin 设置 maven 指令的 classpath 和指令路径。
- Workspace Cleanup Plugin 可以指定 workspace 最多保留多少个历史任务。
- Credentials Binding用户凭证插件安装
3. jenkins中配置JDK路径
- jenkins -> 全局工具配置 -> JDK -> 新增JDK
4. git凭据配置
凭据就是用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便 Jenkins可以和这些第三方的应用进行交互。
- 凭据插件安装Credentials Binding.
该插件默认在一开始就会被安装,安装后在jenkins ->系统管理 -> 安全栏目会出现Manage Credentials选项,若没有需要安装插件并重启。
凭证类型
- Username with password常用:用户名和密码
- GitHub APP新加入
- SSH Username with private key常用: 使用SSH用户和密钥
- Secret file:需要保密的文本文件,使用时Jenkins会将文件复制到一个临时目录中,再将文件路径 设置到一个变量中,等构建结束后,所复制的Secret file就会被删除。
- Secret text:需要保存的一个加密的文本串,如钉钉机器人或Github的api token
- Certificate:通过上传证书文件的方式
接下来以使用Git工具到Gitlab拉取项目源码为例,演示Jenkins的如何管理Gitlab的凭证。
Jenkins->系统管理->系统->全局凭证->添加凭证
- Username with password类型
- SSH Username with private key
5. 集成Git
为了jenkins能够拉取代码,需要安装Git环境和jenkins对应的Git插件
- CentOS 7上安装Git环境
# 安装
$ yum install git -y
# 查看版本
$ git --version
- jenkins安装Git插件
- jenkins配置Git环境
此处无需在jenkins中配置Git环境,采用默认生成的即可,jenkins会默认识别所在环境安装的git路径.
- Gitee码云对接
Jenkins->系统管理->系统->全局凭证->添加凭证
- Gitee上任意建一个仓库,最好是私有的,公有的不需要用户名和密码.
- 测试凭据是否能够使用
jenkins -> 新建任务 -> 自由风格项目
进入jenkins的工作空间查看文件是否拉取下来,所有拉取的文件都会存放在jenkins工作空间中
到此用户名密码方式的凭证已经打通Git
6. Maven集成
在jenkins上发布Java项目时需要使用Maven来进行构建打包(Gradle项目则需要安装配置Gradle)
- 下载安装
# 切换到root用户
$ su root
Password:
# 找一个目录存放maven
$ cd /root/java/jdk/
# 从阿里云上下载maven安装包
$ wget https://mirrors.aliyun.com/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
# 解压
$ tar -zxvf apache-maven-3.6.3-bin.tar.gz
# 当前maven的安装目录为:/root/java/jdk/apache-maven-3.6.3
- 环境配置
$ vim /etc/profile
在最后面JDK配置上作出一些更改
export JAVA_HOME=/root/java/jdk/jdk1.8
export MAVEN_HOME=/root/java/jdk/apache-maven-3.6.3
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
- 是配置生效并查看安装情况
#刷新配置文件
$ souce /etc/profile
$ mvn -version
- jenkins 配置 Maven
- 安装Maven插件
- 使用jenkins用户在/data/software目录下新建一个repository文件夹,用来作为maven的仓库.
$ cd /data/software
$ mkdir repository
- 使用root账户修改Maven的settings.xml文件(指定仓库目录和阿里云镜像)
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!--本地仓库-->
<localRepository>/data/software/repository</localRepository>
<mirrors>
<!--阿里云镜像-->
<mirror>
<id>aliyun-maven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven mirror</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
</mirrors>
...
...
</settings>
- jenkins配置settings.xml文件
Maven测试项目构建
- jenkins添加Maven项目任务
- 构建并查看控制台日志
保存后,点击立即构建,然后进入日志控制台查看日志.
从日志可以看到代码已经拉取下来了,而且走的是阿里云镜像,第一次拉取过程会比较长.
通过查看/data/software/repository 可以看到有存放拉取的jar包,通过这两个证明settings.xml文件配置成功且生效.
- 构建成功后查看jenkins的wokspace目录下的jar包.
到此Maven集成完毕.
六. 构建发布
jenkins发布项目的过程可以总结为4个步骤
- 拉取代码
- 编译打包mvn或npm
- 部署至应用服务器scp
- 启动应用
1. SpringBoot项目发布
- 添加Maven风格的任务
- 填写Gitee仓库地址
- 填写Maven构建操作命令
- 配置Post Steps,选中执行shell
思考,这里我们需要执行的shell内容是什么?
是不是把当前编译好的jar包拷贝到应用服务器取启动
- 应用服务器的规划
由于jenkins构建消耗内存极大,一般jenkins是一台单独的工具机器,Java项目一般在其他的机器上,这里重新安装一台虚拟机,也可以直接开通阿里云的ECS
应用服务器信息
- IP:101.200.192.105
- JDK: 1.8
- 用户: admin
- 部署路径: /data/app/springboot
-端口: 8089
- 配置ssh免密登录
免密登录主要是方便jenkins服务器39.105.61.8的jenkins用户 -->应用服务器101.200.192.105的admin用户上的jar包拷贝,部署本就是jar包拷贝的过程.
在jenkins机器上使用jenkins用户生产密钥,注意此处是jenkins用户.
$ su jenkins
$ ssh-keygen -t rsa
# 3次回车
运行后会在当前用户的根目录生产一个.ssh文件夹
.ssh文件夹描述如下:
- id_rsa: 生成的私钥文件
- id_rsa.pub: 生成的公钥文件
-: know_hosts: 刚开始没有,接下来会配置,已知的主机公钥清单.
接下来需要将公钥导入到认证文件中
$ su jenkins
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
如果希望ssh公钥生效需要满足至少下面两个条件:
- .ssh目录的权限必须是700
- .ssh/authorized_keys文件权限必须是600
给对应文件授权
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
将authorized_keys 文件拷贝到应用服务器的admin用户.ssh目录下.
# 在应用服务器(101.200.192.105)上用admin用户创建/home/admin/.ssh文件夹
# 在jenkins服务器(39.105.61.8)上将pub公钥文件拷贝到应用服务器的.ssh目录下,并命名为authorized_keys
# scp -p ~/.ssh/id_rsa.pub admin@192.168.1.2:/home/admin/.ssh/authorized_keys
scp -p ~/.ssh/id_rsa.pub root@101.200.192.105:/home/admin/.ssh/authorized_keys
在jenkins (39.105.61.8)服务商进行免密连接测试.
# 在jenkins服务器的/home/admin目录下创建filetest文件,并拷贝到应用服务器
$ cd ~/
$ touch filetest
$ scp -p filetest admin@101.200.192.105:/home/admin/filetest
# 进入到应用服务器(101.200.192.105),检查/home/admin目录下是否出现filetest
# 在jenkins服务器上使用ssh进行免密连接测试,成功后会出现Last Login的提示
$ ssh admin@101.200.192.105
Last login: Sun Sep 20 21:53:03 2020
$ exit
到此免密登录和拷贝实现成功,接下来jar包部署提供了快捷的帮助.
- 编写jenins发布脚本
#!/bin/bash
echo "部署的目录和项目名称"
DIR="/data/app" #部署路径
projectName="springboot" #项目名称
echo "待部署的应用服务器,可多台"
server_ips="192.168.1.2" #多台用,号隔开
for server_ip in ${server_ips[@]}
do
echo "ssh连接进行备份操作"
ssh -Tq -oStrictHostKeyChecking=no admin@${server_ip} <<EOF
mkdir -p $DIR/backup/${projectName}
if [ -f "$DIR/${projectName}/${projectName}.jar" ];then
mv $DIR/${projectName}/${projectName}.jar $DIR/backup/${projectName}/${projectName}-`date "+%Y%m%d_%H%M%S"`.jar
fi
EOF
echo "拷贝jar包到目标服务器的tmp目录"
scp -q -oStrictHostKeyChecking=no ${WORKSPACE}/target/*.jar admin@${server_ip}:/tmp/${projectName}.jar
echo "ssh远程连接进行发布操作"
ssh -q -oStrictHostKeyChecking=no admin@${server_ip} <<EOF
mv /tmp/${projectName}.jar $DIR/${projectName}/${projectName}.jar
EOF
done
echo "success"
- 编写应用启动脚本
在/data/app/springboot目录下创建启动脚本start.sh
$ touch start.sh
$ vim start.sh
# 将下面代码粘贴到start.sh中
#!/bin/bash
set -e #任何命令出错就退出
set -o pipefail
APP_ID=it235-boot
APP_DIR="/data/app"
nohup java -Dspring.profiles.active=dev -jar ${APP_DIR}/${APP_ID}/${APP_ID}.jar > release_out.log &
start_ok=false
if [[ $? = 0 ]];then
sleep 3
tail -n 10 release_out.log
sleep 5
tail -n 50 release_out.log
fi
aaa=`grep "Started" release_out.log | awk '{print $1}'`
if [[ -n "${aaa}" ]];then
echo "Application started ok"
exit 0
else
echo "Application started error"
exit 1
fi
在/data/app/springboot目录下创建停止脚本stop.sh
$ touch stop.sh
$ vim stop.sh
# 将下面代码粘贴到stop.sh中
#!/bin/bash
APP_ID=it235-boot
ps aux | grep ${APP_ID} | grep -v "grep" | awk '{print "kill -9 "$2}' | sh
并进行启动和停止测试,查看日期输出是否正常
将下述启动代码配置到jenkins中
sh $DIR/${projectName}/stop.sh
sh $DIR/${projectName}/start.sh
- 访问并测试代码是否生效
如果是虚拟机则需要给防火墙添加8089端口
$ su root
# 开启防火墙9010端口
$ firewall-cmd --zone=public --add-port=9010/tcp --permanent
# 使配置生效
$ firewall-cmd --reload
如果是ECS则需要在安全组中开放9010端口此处省略
此外也可以采用Nginx映射此处省略
- 修改代码返回值,提交值Gitee,并再次进行构建发布,访问页面,查看结果是否更新.
到此一个简单的SpringBoot项目发布完成,但企业中的发布往往比这要复杂很多,在参数化构建章节再为您详细讲解,比如:
- 自动构建
-按分支发布
-Tag发布
-节点发布
-流水线发布等等,
七. 企业级复杂构建场景
复杂发布场景概述
在企业中,要实现敏捷开发,必须结合jenkins的众多插件来实现更牛逼的特性。
思考一个问题:企业中究竟如何进行管理项目发布的?代码的回滚怎么做?
- 开发环境:一般在本地机房,前后端开发联调,后端改动代码后即可实时在开发调试环境更新,供前端自行调试
- 测试环境:一般在本地机房,不同迭代对应不同的测试环境,如何保证环境不冲突,交付测试后如何最快通知相关人员跟进
- 离线/灰度/UAT环境:目前大部分在云环境上构建
- 生产环境:云服务器环境,如何快速备份发布多个节点,发布成功的通知
- 移动端:安卓、IOS打包后通知相关人员下载
- Docker的构建、K8S构建等
参数化构建
背景:每次构建项目时都需要去修改一下配置,然后保存,再去立即构建。这样修改容易修改出错误,影响到执行脚本,且每次都要去修改配置,不容易修改,操作也比较麻烦。就像我们写固定代码一样,但有了参数后,代码的复用性大大提高,我们可以根据具体的参数做不同的操作,比如1是发布,2是回滚。
插件:Build with Parameters和Extended Choice Parameter,默认已经安装
感谢大家的关注点赞,文章持续更新中…
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)