一、基本配置
1、安装Jenkins
在Mac环境下,需要先安装JDK,安装完成后在Jenkins官网(https://jenkins.io/index.html)下载最新的war包,下载完成后,打开终端进入到war包所在目录,执行如下命令:java -jar jenkins.war --httpPort=8088
其中httpPort是Jenkins所使用的http端口,待Jenkins启动后在浏览器输入如下地址:http://localhost:8088
这样就打开Jenkins管理页面了,进入到页面后会提示你输入密码,根据页面给的路径找到密码,然后点击‘continue’到下一步,点击‘Install suggested plugins’安装推荐的插件。
2、创建管理员用户
上述步骤完成后会进入到创建管理员用户界面,此管理员用户就是进入Jenkins需要的,这里创建管理员用户名为admin,密码为123456。
3、安装需要的插件
上述步骤完成后,会进入到Jenkins的主页面,然后要安装一些需要的插件;点击‘系统管理’->‘管理插件’,先在‘已安装’中查看已安装的插件,如果没有找到则可以在‘可选插件’搜索到需要的插件的并安装。
此iOS项目大概需要如下插件:
svn插件 —- ‘Subversion Plug-in’,证书插件 —- ‘Credentials Plugin’,‘Keychains and Provisioning Profiles Management’,ftp(sftp)插件 —- ‘Publish over FTP’、‘Publish Over SSH’,安装脚本插件 —- ‘Post-Build Script Plug-in’。
4、构建项目
上述插件安装完成后,就可以配置一个构建项目了;进入Jenkins首页,点击‘创建一个新任务’,输入项目名称然后选择‘构建一个自由风格的软件项目’。
勾选‘丢弃旧的构建’,然后设置保持构建的天数和保持构建的最大个数。
源码管理,选择Subversion,设置svn的Repository URL:https://username@xxx.xxx.xxx.xxx:8443/svn/xxx;然后设置Credentials,点击后面的Add按钮添加svn账号及密码,Kind选择‘Username with password’,也可以在Jenkins首页‘Credentials’->’global credentials’->’Add Credentials’添加svn账号。
5、构建触发器
触发远程构建,设置身份验证令牌,然后可以通过url进行远程构建,jenkins地址/job/job名称/build??token=口令&cause=书写构建原因 ,例如:http://192.168.1.20:8088/job/bgzs/build?token=123456&cause=书写构建原因。
Build periodically(定时build),格式是这样的,分钟(0-59) 小时(0-23) 日期(1-31) 月(1-12) 周几(0-7,0和7都是周日),如每天20点执行build(H 20 * * *)。
Poll SCM(poll source cod management)轮询源码管理,格式和上面通用,如每5分钟轮询一次(H/5 * * * *)。
6、构建环境
构建环境主要对打包需要的证书进行配置,由于我们在构建脚本里面配置了证书,所以这里不做配置。
7、构建
Execute shell(构建脚本),具体见脚本文件注释。
二、项目进阶配置
1、参数化构建过程
在项目配置的‘General’勾选‘参数化构建过程’,这里用到了两种方式‘Choice’和‘String Parameter’。
‘Choice’,点击‘添加参数’->‘Choice’,列如配置不同的打包环境,‘Name’设置为archive_type,‘Choices’填写不同环境的参数,每个参数之前用换行符隔开。
‘String Parameter’,点击‘添加参数’->‘String Paramter’,列如配置打包的版本号,‘
Name’设置为enterprise_version_string,‘默认值’设置为1.0。
设置完后,我们可以在下面的配置(如源码管理、shell脚本等)中用到该参数,访问方式为${archive_type},archive_type为设置的参数的‘Name’。
2、上传文件到sftp
首先要安装插件‘Publish Over SSH’,安装完成后到‘系统管理’->‘系统设置’的‘Publish over SSH’进行设置。
公共配置:
Passphrase:密码(key的密码,如果你设置了)
Path to key:key文件(私钥)的路径(在终端运行ssh-keygen,连续回车后~/.ssh/id_rsa就是私钥)
Key:将私钥复制到这个框中
Disable exec:禁止运行命令
私有配置:
SSH Server Name:标识的名字(随便你取什么)
Hostname:需要连接ssh的主机名或ip地址(建议ip)
Username:用户名
Remote Directory:远程目录
Use password authentication, or use a different key:勾选,然后输入sftp用户名对应的密码
私有配置的高级:
Port:端口(默认22)
Timeout (ms):超时时间(毫秒)默认即可
Disable exec:禁止运行命令
Test Configuration:测试连接
上述设置完成后,即可到项目中配置sftp文件上传;到‘构建’->‘增加构建步骤’选择‘Send files or execute commands over SSH’进行如下配置。
基本配置:
SSH Server Name:选个一个你在系统设置里配置的配置的名字
Transfer Set Source files:需要上传的文件(注意:相对于工作区的路径。看后面的配置可以填写多个,默认用,分隔)
Remove prefix:移除目录(只能指定Transfer Set Source files中的目录)
Remote directory:远程目录(根据你的需求填写吧,因为我这儿是测试,所以偷懒没有填写。默认会继承系统配置)
Exec command:把你要执行的命令写在里面
高级:
Exclude files:排除的文件(在你传输目录的时候很有用,使用通配符,例如:**/*.log,**/*.tmp,.Git/)
Pattern separator:分隔符(配置Transfer Set Source files的分隔符。如果你这儿更改了,上面的内容也需要更改)
No default excludes:禁止默认的排除规则(具体的自己看帮助)
Make empty dirs:此选项会更改插件的默认行为。默认行为是匹配该文件是否存在,如果存在则创建目录存放。选中此选项会直接创建一个目录存放文件,即使是空目录。(个人理解)
Flatten files:只上传文件,不创建目录(除了远程目录)
3、邮件通知
首先要在‘系统管理’->‘系统设置’->‘Jenkins Location’设置系统管理员邮件地址,然后在‘邮件通知’里面进行下面设置:
SMTP服务器:smtp.163.com
用户默认邮件后缀:@163.com
点击高级并勾选‘使用SMTP认证’,然后设置用户名(不用带后缀)和密码(在邮件开启POP3/SMTP服务时设置的授权密码),这里的用户要和管理员邮件是一致的,否则有报错。
然后下项目配置中‘构建后操作’增加‘E-mail Notification’,在‘Recipients’填写需要通知的邮箱地址,可以填写多个邮箱地址,中间有空格分开;勾选‘每次不稳定的构建都发送邮件通知’。