Jenkins 持续集成使用教程

Jenkins 持续集成使用教程


用 jenkins 有什么好处

  1. 通过规范化来完成,简单,繁琐,浪费时间的重复工作
  2. 规范化工作,以免出现低级错误
  3. 实现随时随地任何人一键构建
  4. ......

安装 jenkins

以 Mac 设备为例(Windows 步骤类似),帮你一步一步搭建好 jenkins。jenkins 属于 java 项目 依赖于 java,需要先安装 java jdk,具体安装方式请自行百度。

安装 jenkins 有常用的三种方式。

使用 pgk 安装包安装

官网 下载 pgk 安装包,使用安装器安装,按照流程安装即可。此安装方式会在 Mac 系统里创建一个名为 jenkins 用户,jenkins 服务就部署在这个用户下。

具体步骤如下图所示:

此种方式不推荐。

使用 war 安装

直接去官网下载 war 文件,并 cd 到 jenkins.war 所在目录,执行:

java -jar jenkins.war --httpPort=8080

war 包自带 jetty 服务器,以上命令会自动启服务器,并完成部署。

此种方式安装,会在当前用户的根路径下创建 .jenkins 隐藏文件,并产生多余的配置文件,需手动管理,且不方便卸载。

此种方式也不推荐。

使用 Homebrew 安装

Homebrew 作为 macOS 下的包管理器使用起来异常的简单快捷方便。
安装 Homebrew 之前, 首先安装 Command Line Tools for Xcode,命令如下:

xcode-select --install

Homebrew 依赖 Command Line Tools for Xcode,Xcode 命令行工具包含在 Xcode 中,如果 mac 设备已经安装 Xcode,请忽略此步。

安装完上面的编译依赖之后,通过下面的代码完成 Homebrew 的安装:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

完成 Homebrew 安装。

可通过以下命令查看当前 Homebrew 管理的服务:

brew services list

使用 Hombrew 安装 jenkins,执行以下命令:

brew install jenkins

此步,Homebrew 会下载并安装自动完成所有依赖,包括 java。并会创建 ‘jenkins’ 命令。

同时,卸载 jenkins 的方式为:

brew uninstall jenkins

启动 jenkins 服务的方式为:

brew services start jenkins

使用此种方式启用 jenkins 服务支持后台运行,可以关闭终端工具。

也可以使用 jenkins 命令来启用 jenkins 服务。但此种方式不支持后台运行,关闭命令行工具,服务自动关闭。

另,常用命令还有:

重启 jenkins 服务的方式为:

brew services restart jenkins

停止 jenkins 服务的方式为:

brew services stop jenkins

通过此种方式安装,不会在系统中产生垃圾文件和多余的配置文件,所有的文件都是用 Homebrew 来管理,并且方便卸载。

此种方式强烈推荐。

如安以上方式安装后,localhost 打不开,可能的情况一般有:java jdk 未正确安装或配置,8080端口被占用,安装路径权限不够等等的问题,遇到这样的问题最好的办法是:卸载重装。不同的安装方式,卸载方式也会不同。具体可参看这个教程

另,也有如下方式操作 Jenkins 服务

http://localhost:8080/exit //停止服务

http://localhost:8080/restart //重启服务

http://localhost:8080/reload // 重新载入服务

配置 jenkins

创建用户

完成 jenkins 安装以后,在浏览器种打开 localhost ,会进入配置 jenkins 页面。

按照提示,找到/Users/Shared/Jenkins/Home/ 这个目录下,打开 initialAdminPassword 文件,复制出密码并填入,点击继续,进入安装插件页面。

建议选择 Install suggested plugins。

等待插件安装完成后,jenkins 会重启,等待重启完成后,会进入创建用户页面。

填写用户信息后,保存即可。请务必记住用户名和密码信息,否则重置用户信息非常麻烦。

安装插件

登录 http://localhost:8080 ,选择“系统管理”——“管理插件”,在“可选插件”中选中“GitLab Plugin”、“Gitlab Hook Plugin”、“Xcode integration"等常用插件,然后安装。

安装完成插件后,就可以新建项目了!

其他常用插件有:

Email Extension Plugin
该插件用于替换 Jenkins 自带的邮件发送,更加的强大。

Git Plugin
该插件允许使用GIT作为一个构建SCM(源代码控制管理系统)。

Post build task
该插件允许用户依据构建日志的输出执行一个shell/批处理任务。

Ruby Plugin
该插件允许用户在构建脚本中使用 Ruby。

Python Plugin
添加执行 Python 脚本作为Hudson的构建步骤。

Gradle Plugin
该插件允许Hudson调用Gradle构建脚本作为主体构建的步骤。

FTP-Publisher Plugin
该插件能上传项目构件和整个目录到一个FTP服务器。

Extended Choice Parameter plugin
该插件可以扩展参数化构建过程

Extended Choice Parameter Plug-In
该插件可以扩展参数化构建过程

Dynamic Extended Choice Parameter Plug-In
该插件可以扩展参数化构建过程

git parameter Plug-in
该插件可以扩展参数化构建过程

fir-plugin
该插件是 fir.im 分发平台提供的 jenkins 插件,用于上传安装包到 fir.im 平台。此插件安装方式与上面的插件安装方式不同,具体安装方式见文末。

新建项目

点击新建,在新建项目页面输入项目名称,选择“构建一个自由风格的软件项目”,然后进入配置页面

源码管理中 选择 Git ,填写仓库地址

如出现红色警告,说明 Jenkins 访问不了 Git 仓库,一般是因为没有权限导致。点击 Credentials 项的 Add ,在打开的 Jenkins Credentails Provider:Jenkins 页面,在 Username 和 Password 输入 Git 仓库的用户名和密码,完成添加。不必担心用户信息外泄,Jenkins 服务和所有配置都保存在本地。

还可以通过配置 Git SSH 的方式赋予 Jenkins 访问 Git 仓库的权限,按此方法较为麻烦,具体步骤略。

在 Branches to build 中设置 Branch Specifier 要构建的分支,默认为 master。

构建触发器中设置构建自动化的触发器。

其中 Build periodically,为定时 build,在日程表里设置 build 时间,如设置 00 20 * 表示每天 20 点执行定时 build。

Poll SCM (poll source code management) 轮询源码管理,表示在指定的时间点去轮询 Git 仓库,看是否有新的 commit,如有,则触发构建。如设置 0/5 表示每5分钟轮询一次。

完成此步骤后,剩余的工作,皆可通过 Execute shell 脚本来执行。不同类型项目执行脚本不同。

脚本构建

以构建 iOS 的 SellerPlatform 迷橙商家端项目上传 fir.im 分发平台为例完成创建。

第一步 归档

archive.sh

`#! bin/bash

export LC_ALL=zh_CN.GB2312;
export LANG=zh_CN.GB2312

gitMessage=git log --pretty=format:"%s";

stringTag=${gitMessage%%】}; #%%[ 表示从右边开始,删除最后(最左边)一个 [ 号及右边的字符

debug="【Debug";
preRelase="【PreRelase";
relase="【Relase";

if [[ $stringTag != $debug && $stringTag != $preRelase && $stringTag != $relase ]]
then
exit 1
else
echo "触发非参数化构建 暗号:$stringTag】"
fi

echo ">>>>>>>>>>>>>>>>>>>开始构建项目,当前选择构建类型:" + $BUILDTYPE
echo ">>>>>>>>>>>>>>>>>>>当前 workspace " +$WORKSPACE

if [ $BUILDTYPE == "Release"]; then
xcodebuild archive -workspace $WORKSPACE/SellerPlatform/SellerPlatform.xcworkspace -archivePath $WORKSPACE/build/SellerPlatform.xcarchive -sdk iphoneos -scheme SellerPlatform -configuration Release

else
xcodebuild archive -workspace $WORKSPACE/SellerPlatform/SellerPlatform.xcworkspace -archivePath $WORKSPACE/build/SellerPlatform.xcarchive -sdk iphoneos -scheme SellerPlatform -configuration Debug

fi

echo ">>>>>>>>>>>>>>>>>>>构建完成"

以上脚本实现的功能是:当在 git commit messge 里包含指定的标记号,即可完成对应标记号的构建。把控制权延伸到 git commit 操作里。

其中 【Debug】 代表打 debug 版本包,【PreRelase】代表打 preRelase 版本包,【Relase】代表打 relase 版本包。

首先,通过执行 git log --pretty=format:"%s" 命令,格式化输出 git commit log,
通过 %%】* 操作,是要拿到最后标记号【Debug】或【PreRelase】或【Relase】,如果拿到对应的标记号,则完成对应方式的构建。

另,Jenkins 会为每个工程项目创建一个本地目录空间,并提供了 \$WORKSPACE 环境变量来直接访问。

第二步 签名

signature.sh

echo "开始签名"

xcodebuild -exportArchive -archivePath $WORKSPACE/build/SellerPlatform.xcarchive -exportPath $WORKSPACE/build -exportOptionsPlist $WORKSPACE/build/ExportOptions.plist -allowProvisioningUpdates

echo "ipa文件已生成"

echo "开始上传fir"

以上脚本实现的功能是:根据第一步归档出来的projectName.xcarchive 完成签名打包。

第三步 上传

首先,打开终端,安装 fir-clifir 的命令行工具,用于通过命令行上传安装包。
需要先装好 ruby 再执行

gem install fir-cli

上传打 fir 命令

fir publish ${ipa_path} -T fir_token -c "${commit_msg}"

upload.sh

echo ">>>>>>>>>>>>>>>>>>>开始上传到 fir"
if [$BUILDTYPE == "Debug" ]; then

fir publish $WORKSPACE/build/SellerPlatform.ipa -T efa7a5559110764a5037c52d4599635f --password rose888 -c $CHANGELOG

elif [ $BUILDTYPE == "PreRelease" ]; then

fir publish $WORKSPACE/build/SellerPlatform.ipa -T 4f43ef4e28992358b511a76eb1c27d48 --password rose888 -c $CHANGELOG

else

fir publish $WORKSPACE/build/SellerPlatform.ipa -T 3a9a1a361fe52b8b0d5eb59c7d0bd808 --password rose888 -c $CHANGELOG

fi

echo ">>>>>>>>>>>>>>>>>>>上传成功啦"

至此,就完成了持续集成的流程。

完成后建构,还可以通过 Email Extension Plugin 插件,邮件通知到相关人员。还可以定制邮件内容。在邮件内容里,还可以放置二维码,方便下载安装。

更进一步,参数化构建

参数化构建,顾名思义,就是可以指定构建参数,完成高度可定制化构建。

首先,需要安装 git parameter Plug-in 插件,然后项目配置页面,在 General 中,选中‘参数化构建过程’,然后选择 git parameter。如图所示:

设置 name 为 git_branch,即为变量名,然后 Parameter type ,就是 选择 branch/tag/branch or tag 三种类型,在源码管理中 Branches to build 中设置 Branch Specifier 为 \$git_branch 。即可完成自定义分支构建。

同样,可以设置构建的版本类型。在构建的时候,进行选择。在此不再赘述。

fir-plugin 安装与使用

在上面的例子里,使用的是 fir.im 提供的命令行工具完成后建构的上传,也可以通过 fir-plugin 插件来完成上传。

安装

首先去下载插件
。然后,进入"系统管理"->"管理插件"->"高级"->"上传插件"

选择已下载好的 fir-plugin.hpi 插件,点击上传。

安装完成后重启服务。

使用

构建后操作 选择"Upload to fir.im",并添加 api token 并校验

立即构建项目,成功之后,在工程里的 Console Output 中有如下日志

说明成功了。

其他配置

内网访问

首先,拿到 jenkins 服务器所在设备上的内网 IP,执行如下命令可获得

ifconfig en0

进入"系统管理"->"系统设置" 找到 Jenkins Location 在 Jenkins URL 中设置地址,并加上端口号,格式如:172.0.0.1:8080/,然后保存。重启服务,内网其他设备输入地址即可访问。

当其他设备不能访问时,一般原因有:jenkins 服务器没启动,设备处于休眠模式,设备内网 IP 被重新分配。

觉得不错的话,欢迎关注我的公众号哦!

原文地址:http://blog.51cto.com/13709112/2104797

时间: 2024-08-02 22:50:29

Jenkins 持续集成使用教程的相关文章

python_java_selenium_ jenkins持续集成Firfox_chrome浏览器不显示的解决方法?

python_java_selenium_ jenkins持续集成Firfox_chrome浏览器不显示的解决方法: 原因:因为jenkins是用windows installer 安装成 windows的服务了,那么jenkins是计算机服务理的一个后台服务,所以跑cases 的时候不显示浏览器 解决办法:1.我们需要关掉jenkins后台服务,让他从cmd(dos窗口)启动,类似于tomcat的手动启动下面的方法适合不用tomcat的同学(注意,用也可以配置好Tomcat放在webapp下启

jenkins持续集成源码管理选项为None,构建失败找不到git.exe解决办法

我的jenkins版本为Jenkins ver. 2.19.1 1.源码管理选项只有None的解决办法: 在插件管理中心,搜索对应的源码管理插件这里以git为例,搜索git plugin点击右下角的安装方式(在线安装需要连接VPN你懂的),如下图 重启后即可看到git按钮: 2.jenkins持续集成时,点击构建失败无法找到git.exe解决办法如下图: 控制台输出提示构建失败git.exe rev-parse --is-inside-work-tree # timeout=10:原因是没有找到

Jenkins持续集成学习及企业级应用

文档声明 该文档主体为去年末自主学习时总结,旨在为我司提供一套企业级持续集成解决方案.这篇文章现在看上去很稚嫩,但是当时花费了许多心血.希望将当时的学习心得拿出来与大家交流.该文档主要说明了jenkins持续集成部署的相关步骤,并着重实现了权限分组,邮件配置,插件配置的jenkins实现过程.对出现的问题进行解决,是一套持续集成的解决方案. 持续集成Continuous integration 提出 针对复杂度高的项目提出“早集成,常集成,频繁集成”来帮助项目在早期发现项目风险和质量问题 作用

3、Jenkins持续集成之持续集成

3.Jenkins持续集成之持续集成.md 配置ansible实现无密钥交互 安装阿里云YUM源码 [[email protected] ~]# cat <<EOF>>/etc/yum.repos.d/epel.repo [epel] name=epel for aliyun baseurl=https://mirrors.aliyun.com/epel/7/x86_64/ enabled=1 gpgcheck=0 [os] name=os for aliyun baseurl=h

4、Jenkins持续集成之maven编译

4.Jenkins持续集成之maven编译.md 简介     Jenkins是一个开源的持续集成工具,应用Jenkins搭建持续集成环境,可以进行自动构建.自动编译和部署,非常方便.在服务器比较少的情况下,Jenkins的优势并不明显,但是随着项目发展,服务器数量的增加,Jenkins的优势就会凸显出来,可以很好的提高效率,减少很多人工操作.现在公司的开发都是使用Git管理代码,Maven管理多模块和项目依赖.Jenkins支持两种工程:FreeStyle工程和Maven工程.如果代码是用Ma

2、Jenkins持续集成之前期准备

2.Jenkins持续集成之前期准备.md 持续集成 互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuous integration,简称CI). 持续集成指的是,频繁地(一天多次)将代码集成到主干,它的好处主要有两个. (1)快速发现错误.每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易.     (2)防止分支大幅偏离主干.如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成 持续集成的目的,就是让产品可以快

Jenkins持续集成-自动化部署脚本的实现《python》

读者须知:1.本手记本着记续接前面的两张手记内容整理2.本手记针对tomcat部署测试环境实现 最近工作比较繁忙,导致这章一直拖延,没有太抽出时间来总结.要实现Jenkins端的持续集成,其实在CI服务配置端很容易,难点呢?就是如何实现自动化的部署.我的脚本设计就是为了解决以下难题: 难点一.如何使得自动化部署脚本更通用 我用的脚本,依赖依赖一个配置文件的模块化,让每一个应用业务模块更加通用.自动化所执行的命令呢?我也是设计想法本着更加通用平台的原则,至少对于tomcat+java or jav

Ant+jmeter+jenkins 持续集成设置

1.创建任务http://i2.51cto.com/images/blog/201802/24/a5a104abf5fba828adab8bda5194ab38.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=" alt="Ant+jmeter+jenkins 持续集成设

接口自动化平台搭建(四),自动化项目Jenkins持续集成

一.Jenkins的优点 1.传统网站部署流程 ??一般网站部署的流程 这边是完整流程而不是简化的流程 需求分析-原型设计-开发代码-内网部署-提交测试-确认上线-备份数据-外网更新-最终测试 ,如果发现外网部署的代码有异常,需要及时回滚. 一般是运维来做 1.功能测试 2.上线的时间 3. jenkins 4.运维 5.功能测试 2.Jenkins部署流程 ??我们可以通过jenkins工具平台实现全自动部署+测试,是一个可扩展的持续集成引擎,是一个开源软件项目,旨在提供一个开放易用的软件平台