jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境

jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境_第1张图片

要解决的问题

公司或项目组没有持续集成环境,会经常出现新提交代码导致主干代码编译失败的情况。用Jenkins搭建一个简单的持续集成环境,可以及时发现编译错误,发邮件通知相关人员,从而提高开发效率,规范开发人员代码提交行为。

方法和步骤

下面就开始介绍搭建Jenkins+SVN持续集成环境的方法和步骤
  1. 下载Jenkins

虽然目前Jenkins官网相对比较推荐docker的安装方式,但是由于国内下载慢的原因,再加上大多数人对tomcat相对比较熟悉,所以最终还是使用传统的jenkins.war包。使用清华大学的镜像站点下载速度还是比较快的,链接如下:

https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.222.4/jenkins.war​mirrors.tuna.tsinghua.edu.cn

2. 部署tomcat

tomcat8.5国内清华镜像下载地址:

https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.54/bin/apache-tomcat-8.5.54.zip​mirrors.tuna.tsinghua.edu.cn

下载之后将tomcat解压部署,并将jenkins.war拷贝到webapps目录下。

unzip apache-tomcat-8.5.54.zip
cd  apache-tomcat-8.5.54/bin
cp -rf /tmp/jenkins.war /apache-tomcat-8.5.54/webapps
chmod +x *.sh
./startup.sh

3. 访问并解锁Jenkins

在tomcat正常运行后,访问http://localhost:8080/jenkins查看Jenkins是否启动成功,其中localhost改为实际部署Jenkins的服务器域名或IP。

jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境_第2张图片

刚开始jenkins需要初始化一会,然后就提示输入本地密码解锁Jenkins,路径已经显示出来,只需要到tomcat部署服务器的~/.jenkins/secrets/initialAdminPassword文件中获取并输入,就可以解锁Jenkins。

jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境_第3张图片

4. 解决Jenkins离线问题

解锁之后进入下一个页面有点让人懵逼了。提示“Jenkins实例已离线”,什么情况?才解锁进来就离线了?于是上官网查看了一番,发现原来jenkins会检查插件更新中心的update_center.json中配置的网站能否连上,这个网站默认是google,所以是连不上的,就提示离线了。

jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境_第4张图片

解决办法:

1、另开一个页面,输入地址 http://localhost:8080/pluginManager/advanced,进入插件更新中心。
2、修改update site为清华镜像的update-center.json地址并点击“submit”。地址为: https:// mirrors.tuna.tsinghua.edu.cn /jenkins/updates/update-center.json
3、修改 /root/.jenkins/updates/default.json。将第一行开头的 http://www. google.com 改为 http://www. baidu.com
4、重启tomcat让Jenkins读取新的配置,再次进入并解锁Jenkins之后,就进入插件配置界面了。

jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境_第5张图片
插件更新中心修改站点地址为清华镜像的update-center.json

5、点击“安装推荐插件”开始默认插件的安装。

jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境_第6张图片
重启tomcat并解锁Jenkins后,不再提示离线,来到插件安装界面

jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境_第7张图片
安装推荐插件

6、创建管理员用户

jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境_第8张图片

7、配置Jenkins实例

Jenkins实例的URL会自动生成,直接点保存就可以了。

jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境_第9张图片

8、Jenkins就绪

点“开始使用Jenkins”

jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境_第10张图片

9、创建一个freestyle新任务

jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境_第11张图片
点“创建一个新任务”

jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境_第12张图片
选择freestyle project并输入任务名称

10、配置构建丢弃策略

创建任务后,默认就会跳转进入任务配置页面。首先配置构建丢弃策略,也就是构建的保存天数和保存个数。

jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境_第13张图片

11、配置svn仓库

在“源码管理”,选择“Subversion”进行SVN仓库配置,需要配置仓库URL和SVN凭据(分配给Jenkins的SVN用户名和密码)。

jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境_第14张图片

需要将SVN用户名和密码加入Jenkins的凭据管理中,输入用户名和密码,然后点添加。

jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境_第15张图片

12、配置构建触发器

构建触发器帮忙Jenkins决定什么条件下发起构建,比较简单的逻辑是周期构建+SVN提交触发相结合。构建的时间采用类似于cron-tab的时间格式。

jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境_第16张图片

13、配置构建环境

勾选“Delete workspace before build starts”,每次编译前删除workspace,这样可以确保每次编译都使用最新代码全部重新编译。

jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境_第17张图片

14、配置构建脚本

Jenkins每次任务会在workspace中自动checkout SVN仓库代码,构建脚本主要执行构建命令并在构建失败的情况下返回错误(exit 非0)。

jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境_第18张图片
添加shell脚本

在shell脚本中需要注意,如果编译出错一定要返回非0值,否则Jenkins还是会认为编译成功。

jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境_第19张图片
#!/bin/sh -e


#检查编译脚本执行是否成功
check_result()
{
  echo input params:$1

  if [ $1 != 0 ]; then
     exit $1
  fi
}


#进入工作目录
cd $WORKSPACE

#执行编译脚本
./build.sh

#检查编译结果
build_result=$?
check_result $build_result

15、配置构建后邮件通知

在“Jenkins->系统管理->系统配置”中配置“邮件通知”。主要配置SMTP服务器、用户默认邮件后缀、SMTP认证(邮箱用户名和密码)。

jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境_第20张图片

在构建任务中,添加构建后操作“E-mail Notification”并配置收件人。

jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境_第21张图片

在以下几种情况下分发送e-mail给收件人:

  1. 每次构建失败
  2. 构建恢复(构建失败之后第一次成功的构建)
  3. 每次不稳定构建

构建失败的邮件通知中,包括SVN变更信息、详细编译日志,可以看出是谁的哪些提交导致编译失败。

jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境_第22张图片
构建失败的邮件通知

jenkins shell 权限_【手把手】10分钟搭建Jenkins+SVN持续集成环境_第23张图片
持续运行中的自动构建任务

你可能感兴趣的:(jenkins,shell,权限)