简介
Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。 Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。
链接
使用
安装
从官网下载最新的LST版本,下载完进行安装。
选择启动程序的安装路径
选择登入身份
选择需要的端口
选择相应的JDK根路径
选择默认选项
安装完成
- 使用Window的Jenkins服务,在后台自动运行,服务的数据路径就在
C:\ProgramData\Jenkins\.jenkins 里面
- 情况1,安装后自动启动Jenkins服务。
- 情况2,未启动Jenkins的服务,需要查看启动失败的log,就是在启动程序的安装路径下的
jenkins.err.log ,查看后修复相应的bug,在手动启动下Jenkins的服务即可。 - 使用命令行启动Jenkins,服务的数据路径就在
C:\Users\登入账号\.jenkins 里面。
修改Jenkins服务的数据路径
- 先停止Window的Jenkins服务,打开启动程序的安装路径下的
jenkins.xml ,里面会有%ProgramData% 路径,这个指向的就是C:\ProgramData 路径(可能使用Jenkins的版本不同,这个环境变量可能不同,可能会是%LocalAppData% ,这个指向的就是C:\Users\登入账号 路径),将该环境变量更改到你想要的目标文件夹,就可以修改Jenkins服务的数据路径。如果已经生成了Jenkins服务数据,就直接剪切到更改的目标文件夹就行。 - 以下是我个人的设置:
设置登入身份
- 需要与WindowServer则需要对Jenkins服务更改用户:
-
控制面板搜索服务 -> 点击查看本地服务 -> 在右侧找到Jenkins,右键属性 -> 登入 -> 此账号 -> 选择一个账号 -> 重启服务
设置签证
- 在Jenkins使用远程登入或者SSH/FTP进行传输,需要秘钥或账号密码登入,可以进行设置:
-
Manager Jenkins -> Manager Credentials -> 全局 -> 添加凭证 -> 根据类型选择相应的类型填写
设置agent
设置系统属性
master:Manager Jenkins -> System Information agent:Manager Jenkins ->Manager Nodes and Cluds->选择需要查看的agent->系统信息
Jenkins时使用JAVA, 那编码也会使用默认设置的编码,那可能会导致读取中文文本,会出现乱码,则需要设置启动时的编码设置:文本内的编码设置file.encoding=UTF-8 , IO上的编码设置 sun.io.unicode.encoding=UTF-8 。可以直接设置为系统环境变量,也可以在启动程序的安装路径下的jenkins.xml 启动war时进行设置,以下是我个人在master中的设置: 如果使用agent,应该也要在启动代理的jar时进行设置。以下是我个人启动agent的命令行: 使用Java命令要在模块前面加 D , Window使用PowerShell要在调用模块加引号,使用CMD就不需要引号
使用Shell
- 设置Shell命令执行程序,方便多平台agent的兼容 。
- 在Window平台下,我使用的是Git上自带的sh.exe工具,路径一般在
git根目录/bin 和git根目录/usr/bin 里面,将该路径放入系统的环境变量中(非Jenkins的全局环境变量,设置好像没有效果),设置完记得重启下Jenkins,这个方法对于master和agent都适用。 - 在Mac平台下,自带命令工具,master和agent都不需要设置。
使用Git等工具
- 需要master先设置工具路径:
-
Manager Jenkins -> Global Tool Configuration -> 设置需要工具的启动的路径
- agent在不同电脑上要重新设置工具路径:
-
Manager Jenkins -> Manager Nodes and Cluds -> 选择agnet -> 配置从结点 -> Tool Locations -> 设置需要工具的启动的路径
- 如果agent上没有显示工具的名称,则是没有在master上先配置。
插件使用
- 使用内容可能过多,便拆开来写,点击链接可以进行跳转
构建
-
新建Item ->选择需要的项目模板
- 构建完就可以进行写入相应的命令或者脚本进行搭建简单的集成构建工具了。
执行命令行
构建时选择Freestype project 或者构建一个多配置项目 就可以直接使用命令行进行构建了。
- 设置启动参数,点击
This project is parameterized 就是以在启动构建时配置参数了 - 设置构建的Agent
- 构建命令,在
构建 选择Execute shell/Execute Window batch command 就可以执行命令行了 - 构建后的操作,例如ftp上传或者构建另外一个项目,可以在
构建后操作进行 选择,构建另外一个项目,则改项目的参数是不会传入下一个项目的,需要另外下载插件支持
执行Pipeline
构建时选择Pipline 或者多分支流水线 就可以直接使用命令行进行构建了。
- Pipeline的定义被写在一个文本文件中,该文件可以被提交到项目的源代码的控制仓库。 将CD 流水线作为应用程序的一部分,像其他代码一样进行版本化和审查。
- Pipeline使用的是Groovy,将整个构建流程用脚本或者是声明进行定义。
pipeline {
agent any
stages {
stage('Build') {
steps {
//
}
}
stage('Test') {
steps {
//
}
}
stage('Deploy') {
steps {
//
}
}
}
}
node {
stage('Build') {
//
}
stage('Test') {
//
}
stage('Deploy') {
//
}
}
- 界面上的所有配置都可以使用Pipeline进行声明
- 构建参数,定义在 pipeline 之前,定义完会在第一次构建后显示构建参数,在pipeline块中使用为:
${params.变量名} ,以下面示例为例即为${params.CHOICE} properties([
parameters([
//下拉选择
choice(
choices: ['1','2'],
description: '选择1和2',
name: CHOICE
)
])
])
pipeline { ... }
具体打包代码
Docker的使用
|