1. Jenkins介绍
- Jenkins是基于java的自动化系统平台(在servlet容器中运行,例如Tomcat)
- 提供CI,CD任务及流水线服务
- 支持各种SCM源码控制工具
- 丰富的插件
- 基于Web的管理和使用界面
2. 安装并启动Jenkins
jenkins有多种安装方式: docker,WAR,Linux,Windows,macOS等等。
- windows下的war文件安装jenkins:
- jdk环境安装配置
- 下载 jenkins war,版本2.73.3,安装在D:\Applications\Jenkins目录下
- 启动Jenkins:进入war包所在目录,执行
java -jar jenkins.war
(默认是8080端口,jenkins服务在后台运行,Ctrl+C退出终端后服务不会终止,需要net stop Jenkins来终止),java -jar jenkins.war --httpPort=8038
,(会重新开启一个Jenkins服务,路径 ~/.jenkins,Ctrl+C退出终端后服务会终止。) - 输入localhost:8080/,进入jenkins web页面
3. Jenkins初始化配置
- 解锁Unlock Jenkins:输入initialAdminPassword(Jenkins欢迎页会提示密码具体保存在哪,$JENKINS_HOME\secrets\initialAdminPassword),即可用管理员admin身份进入。
- 定制 Jenkins Customize Jenkins:即是否默认下载一些插件。
4. 新建一个自由风格的job
新建一个自由风格的job(或者说是项目Project)。
- 本地Jenkins\jobs目录对应每个job的具体信息例如构建历史builds等
- 本地Jenkins\workspace目录对应每个job的SCM源码仓库(例如下载的git源码等)
4.1. General
- 如果是测GitHub项目,则勾选Github project-->填写Project URL
4.2. 源码管理
默认None,下载Git Plugin插件后会显示Git方式
- Repositories填写Repository URL(带上.git), Credentials(选择Username with password方式。这个是Jenkins拉取源码时需要的凭证,选择后会自动校验用户权限)
- 对所有Credentials进行管理:http://localhost:8080/credentials/
- Branch Specifier: 为空表示项目的所有分支, refs/heads/master表示本地master分支, refs/tags/tagname表示标签,commitid表示commitid版本等等
4.3. 构建触发器
- Build periodically: 周期进行项目构建(不管源码是否发生变化)。
- Poll SCM(
SCM管理
: 定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作。有Git Polling Log可以查看日志。
-
CST可视为美国,澳大利亚,古巴或中国的标准时间。
-
Git Polling Log日志如下(No changes则不会触发 SCM 构建):
4.4. 构建环境
- 可安装
Timestamper
插件,并且构建环境勾选 Add timestamps to the Console Output,这样在控制台输出的时候会加上时间戳。
4.5. 构建
默认可通过四种方式构建,Windows batch、shell、Maven、ant
-
例如构建脚本如下:
4.6. 构建后操作:可发邮件等。。。
5. 查看构建结果
5.1 某构建历史的构建触发器
- 用户点击 立即构建 触发的会显示 启动用户admin
- Build periodically 触发的会显示 Started by timer
- Poll SCM 触发的会显示 Started by an SCM change
5.2 某构建历史的控制台输出
- 说明: 因为本地windows下已经安装了node环境并添加到了
PATH
中,所以jenkins中不需要额外的配置可以直接运行node命令。可以在jenkins系统管理--》系统信息,查看 JAVA_HOME,JENKINS_HOME,PATH等信息。
6. 关闭,重启或重载 Jenkins
- 关闭:localhost:8080/exit
- 重启:localhost:8080/restart
- 重载:localhost:8080/reload (例如:重新加载配置信息)
7. 停止或启动Jenkins服务
- windows系统
net stop Jenkins(需要管理员权限)
net start Jenkins