简介:jenkins 是基于 java 开发的一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件,用于监控持续重复的工作。
常用功能打包、部署服务。
其实只是一个平台或者是一个大的框架,它的工作完全就是依靠插件,也就是说你想使用什么功能,你就找到什么样的插件。

一、jenkins 安装

从 Jenkins 官方网站https://jenkins.io/war 包。下载最新的

只需要运行命令:
java -jar jenkins.war

Jenkins 就启动成功了!

默认端口号:8080,如果需要自己指定端口号,使用--httpPort=XXX

工程所有相关文件均在.jenkins 目录下。在系统管理——系统设置中可以看到工程的主目录,也可根据提示进行变更。

在浏览器输入:http://localhost:8080/ 进入后,开始设置管理员账号以及安装界面(用于安装插件,插件根据需求安装即可,如 git 插件、邮箱插件等)

ps:使用 SMTP 服务器来发送邮件的时候,TLS 需要是 enabled 状态。记得配置 mail.smtp.starttls.enable=true。可以在启动 jenkins 的时候配置,如:java -jar -Dfile.encoding=utf-8 -Dmail.smtp.starttls.enable=true jenkins.war --httpPort=8081

说明:

1、war 文件——就是 Java 中 web 应用程序的打包。借用一个老兄的话,“当你一个 web 应用程序很多的时候,如果你想把它部署到别的机器上,来回拷这些文件是件挺郁闷的事情,如果要是一个文件就好了。。。那么 war 文件就可以满足你这个小小的要求,不用解压缩。
2、启动 jenkins 的时候,可以配置一些属性,具体参考 java 命令的-D 参数 (<名称>=<值>:设置系统属性),如:
java -jar -Dfile.encoding=utf-8 -Dmail.smtp.starttls.enable=true jenkins.war --httpPort=8081
3、nohup cmd &后台启动
4、安装 jenkins 前需要安装 jdk 并配置环境变量
5、如果出 Android 包还需要安装:
A、下载 android-sdk-linux:http://tools.android-studio.org/index.php/sdk/ 配置环境变量
B、下载 Android-ndk :https://developer.android.google.cn/ndk/downloads/older_releases 并配置环境变量
C、安装 gradle(项目自动化构建开源工具):https://gradle.org/install/ 并配置环境变量
6、使用 Jenkins 的 shell command 来执行 python 脚本时,总是会等脚本执行完毕,最后一次性才把脚本中的 print 语句给打印出来。在 print 语句后加上 sys.stdout.flush(), 就可以达到实时输出的目的了。如:
print(s)
sys.stdout.flush()

二、常用插件介绍

1、Role-based Authorization Strategy:权限管理,不同用户管理不同项目 Job
2、user build vars plugin:在 shell 中可以使用用户相关的变量,但是需要在「Build Environment——勾选 Set jenkins user build variables」
3、Extensible Choice :用来增加参数化管理的选项
4、Job Configuration History:用来获取 Jenkins 变更记录
5、changelog-environment-plugin :获取更新日志
6、Readonly Parameter plugin(只读参数),SSH Slaves plugin(slave),Show Build Parameters plugin(展示每次构建的参数,在构建历史主界面) 等等

插件地址:http://updates.jenkins-ci.org/download/plugins/
十款最佳插件:https://infoq.cn/article/2018/07/devops-10best-jenkins-plugins
其他插件:http://www.yunxiaobai.net/archives/15

卸载插件

1、Manage Plugins 页面的 Installed 选项卡
2、移除主机上 JENKINS_HOME/plugins 目录的对应的 .hpi文件来卸载插件

三、常用构建触发器为:

1.Build periodically:
周期进行项目构建(它不 care 源码是否发生变化),我的配置如下:
0 2 * * * (每天 2:00 必须 build 一次源码)
2.Poll SCM:
定时检查源码变更(根据 SCM 软件的版本号),如果有更新就 checkout 最新 code 下来,然后执行构建动作。我的配置如下:
*/5 * * * * (每 5 分钟检查一次源码变化)

四、环境变量

jenkins 是 non-interactive + non-login 模式,不会获取/etc/profile 或者.profile 等家目录中配置的环境变量,只是使用 $BASH_ENV 设置的值。如果想要获取,就要是使用登录模式,例如在 shell 中增加 #!/bin/bash --login

### 五、必要的时候使用并发构建
1、勾选 Execute concurrent builds if necessary
2、安装插件 build name setter plugin,即可实现不同用户同时构建

参考文档:
https://blog.csdn.net/hudashi/article/details/82464995
https://blog.csdn.net/u013201439/article/details/71425165


↙↙↙阅读原文可查看相关链接,并与作者交流