目录java
简单绘制了下Jenkins的一个流程,以下图:ios
IBM Developer上也有一个看似更复杂一点的图,以下图 git
官网: https://jenkins.io/index.html
下载: http://mirrors.jenkins-ci.org/war/latest/jenkins.war shell
安装: 服务器
启动 oracle
插件安装app
操做: Manage Jenkins -> Manage Plugins -> Available -> Search -> Click to install,以下图所示框架
实用插件
操做: Manage Jenkins -> Configure System
SMTP详细配置请参考 How to send Email at every build with Jenkins
配置编译参数
例如,若是须要打包者自行选择打包类型,如须要编译Release/Debug/Test等不一样版本的包,那须要配置Jobs的编译参数,配置方法以下图所示:
你还能够配置一些其它参数,例如:
配置完后,build界面中就会出现,以下如所示:
How to configure a single Jenkins job to make the release process from trunk or branches?
配置匿名用户权限
后面打包的应用发布时,若是懒得本身搭建服务器,就用Jenkins的,但发布出去的连接须要登陆才能访问,这时候你能够设置匿名用户的访问权限,这样匿名用户能够下载访问你提供的应用连接了,很是取巧的方法,以下图:
配置SSH
操做: Manage Jenkins -> Credentials -> Global credentials (unrestricted) -> Add Credentials
新建Job
在Jenkins中,全部的任务都是以”Job”为单位的。在进行操做前,你须要新建一个Job,Job新建比较简单,只须要在Jenkins管理的首页左侧,点击“New Job”,通常选择free-style software project,再输入Job的名字便可。
配置Gitlab
在新建的任务(Jobs)中,Gitlab源码配置以下图:须要输入git仓库和build分支,公钥使用上面配置SSH生成的公钥。
Jenkins支持多种触发器配置,包括:
按期进行构建(Build periodically),定时器使用示例以下:
H(25-30) 18 1-5: 工做日下午6点25到30分之间进行build
H 23 1-5:工做日每晚23:00至23:59之间的某一时刻进行build
H(0-29)/15 :前半小时内每隔15分钟进行build(开始时间不肯定)
H/20 :每隔20分钟进行build(开始时间不肯定)
根据提交进行构建(Build when a change is pushed to GitHub)
Jenkins支持多种编译配置方式,包括:
对于iOS应用的构建,若是选择Xcode方式构建,须要配置好开发者证书,具体参考后面签名和整数问题。
推荐使用Exceute Shell方式,简单有效。
Artifacts和邮件通知配置,参考下图
可借助Email Extension Plugin 插件进行详细配置,具体可参考此文
发布
固然,若是不想本身的应用发布到三方网站,只但愿在本身的内网上托管,这样须要在本身内网上搭建服务器,服务器搭建方式有不少种,Mac上能够用自带的Apache服务,也能够用其它服务。
iOS的发布可能但愿用到OTA,可参考此文 还有这篇一步一步实现无线安装iOS应用(内网OTA)
这里分享一个我写的shell脚本模板(已开源),能够用于iOS的plist文件自动建立以及OTA简单发布页面的自动建立,参考此连接获取源码, 欢迎Star.
自动生成一个简单HTML界面,以下图,点击Install便可安装:
注意,这里iOS7.1之后限定必需要要用https,因此须要对jenkins设置下https,参考下面”后记” 中的Jenkins Https设置
Last Show
构建成功后最终的结果以下如所示:
查询Jenkins Https相关命令:
1
|
java -jar jenkins.war --help | grep -i https
|
说明:下面以Mac为例.
KeyStore方式
1
|
keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass 密码 -dname "cn=WEB"
|
1
|
java -jar jenkins.war --httpPort=-1 --httpsPort=8080 --httpsKeyStore=/目录/keystore.jks --httpsKeyStorePassword=密码
|
Certificate方式
1
2
3
4
5
|
sudo openssl genrsa -out server.key 2048
sudo openssl req -new -key server.key -out server.csr
sudo openssl genrsa -out ca.key 1024
sudo openssl req -new -x509 -days 365 -key ca.key -out ca.crt
sudo openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
|
启动Jenkins:
1
|
java -jar jenkins.war --httpsPort=8088 --httpsCertificate=/path/server.crt --httpsPrivateKey=/path/server.key
|
实用参考
本文首发于skyseraph.com:“Jenkins Gitlab持续集成打包平台搭建”
同步发表/转载 cnBlogs / CSDN / …