Jenkins Gitlab持续集成打包平台搭建

发布时间:2020-06-20 05:34:13 作者:sjfbjs
来源:网络 阅读:1352

相关概念

Jenkins

Gitlab

持续集成

蒲公英

流程结构

简单绘制了下Jenkins的一个流程,如下图:

 Jenkins Gitlab持续集成打包平台搭建

IBM Developer上也有一个看似更复杂一点的图,如下图 
 Jenkins Gitlab持续集成打包平台搭建

持续交互流程图: 
 Jenkins Gitlab持续集成打包平台搭建

平台搭建

Jenkins安装和启动

官网: https://jenkins.io/index.html 
下载: http://mirrors.jenkins-ci.org/war/latest/jenkins.war

安装:

启动

Jenkins插件安装

插件安装

操作: Manage Jenkins -> Manage Plugins -> Available -> Search -> Click to install,如下图所示

 Jenkins Gitlab持续集成打包平台搭建

 Jenkins Gitlab持续集成打包平台搭建

实用插件

Jenkins系统设置

操作: Manage Jenkins -> Configure System

 Jenkins Gitlab持续集成打包平台搭建

 Jenkins Gitlab持续集成打包平台搭建

 Jenkins Gitlab持续集成打包平台搭建

SMTP详细配置请参考 How to send Email at every build with Jenkins

Jenkins Jobs配置

Jobs基础配置

配置编译参数

例如,如果需要打包者自行选择打包类型,如需要编译Release/Debug/Test等不同版本的包,那需要配置Jobs的编译参数,配置方法如下图所示:

 Jenkins Gitlab持续集成打包平台搭建

你还可以配置一些其它参数,例如:

 Jenkins Gitlab持续集成打包平台搭建

配置完后,build界面中就会出现,如下如所示:

 Jenkins Gitlab持续集成打包平台搭建

How to configure a single Jenkins job to make the release process from trunk or branches?

配置匿名用户权限

后面打包的应用发布时,如果懒得自己搭建服务器,就用Jenkins的,但发布出去的链接需要登录才能访问,这时候你可以设置匿名用户的访问权限,这样匿名用户可以下载访问你提供的应用链接了,非常取巧的方法,如下图:

 Jenkins Gitlab持续集成打包平台搭建

Jobs源码库配置(Gitlab为例)

配置SSH

操作: Manage Jenkins -> Credentials -> Global credentials (unrestricted) -> Add Credentials

  1. 本机生成SSH:ssh-keygen -t rsa -C “Your email” , 生成过程中需设置密码,最终生成id_rsa和id_rsa.pub(公钥)

  2. 本机添加秘钥到SSH:ssh-add 文件名(需输入管理密码)

  3. Gitlab上添加公钥:复制id_rsa.pub里面的公钥添加到Gitlab

  4. Jenkins上配置密钥到SSH:复制id_rsa.pub里面的公钥添加到Jenkins(private key选项)

新建Job

在Jenkins中,所有的任务都是以”Job”为单位的。在进行操作前,你需要新建一个Job,Job新建比较简单,只需要在Jenkins管理的首页左侧,点击“New Job”,一般选择free-style software project,再输入Job的名字即可。

配置Gitlab

在新建的任务(Jobs)中,Gitlab源码配置如下图:需要输入Git仓库和build分支,公钥使用上面配置SSH生成的公钥。

 Jenkins Gitlab持续集成打包平台搭建

Jobs触发条件配置

Jenkins支持多种触发器配置,包括:

Jobs构建方式/编译 配置

Jenkins支持多种编译配置方式,包括:

对于iOS应用的构建,如果选择Xcode方式构建,需要配置好开发者证书,具体参考后面签名和整数问题。 
推荐使用Exceute Shell方式,简单有效。

Jobs构建后处理

Artifacts和邮件通知配置,参考下图

 Jenkins Gitlab持续集成打包平台搭建

可借助Email Extension Plugin 插件进行详细配置,具体可参考此文

 Jenkins Gitlab持续集成打包平台搭建

发布

iOS的发布可能希望用到OTA,可参考此文

这里分享一个我写的shell脚本模板(已开源),可以用于iOS的plist文件自动创建以及OTA简单发布页面的自动创建,参考此链接获取源码, 欢迎Star.

自动生成一个简单HTML界面,如下图,点击Install即可安装:

 Jenkins Gitlab持续集成打包平台搭建

注意,这里iOS7.1以后限定必须要要用https,所以需要对jenkins设置下https,参考下面”后记” 中的Jenkins Https设置

Last Show

构建成功后最终的结果如下如所示:

 Jenkins Gitlab持续集成打包平台搭建

后记

签名和证书问题(iOS)

Jenkins Https Support

查询Jenkins Https相关命令: 
Java -jar jenkins.war –help | grep -i https

说明:下面以Mac为例.

KeyStore方式

keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass 密码 -dname "cn=WEB" 11
java -jar jenkins.war --httpPort=-1 --httpsPort=8080 --httpsKeyStore=/目录/keystore.jks --httpsKeyStorePassword=密码11

Certificate方式

1. openssl genrsa -out server.key 10242. openssl req -new -key server.key -out server.csr3. openssl x509 -req -in server.csr -signkey server.key -out server.crt123123
java -jar jenkins.war --httpsPort=8088 --httpsCertificate=/path/server.crt --httpsPrivateKey=/path/server.key 11

实用参考

Refs


推荐阅读:
  1. 怎么用Gitlab和Jenkins实现持续集成?
  2. 如何用jenkins和gitlab实现CICD

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

software android continuous

上一篇:Office 365 排错:Exchange Online Active Sync异常排错方法

下一篇:JavaScript函数

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》