tips:
对于刚开始接触jenkins的,总可能会有很多问题,这里我总结一下,方便各位按需匹配.
安装
建议用war包安装,安装jenkins新版本,可以参考https://www.jenkins.io/zh/doc/book/installing/, war包地址https://updates.jenkins-ci.org/download/war/
jenkins api
我目前使用的是python的jenkinsapi,大部分功能可以实现哈
linux安装这里我有一个自动注册的脚本,windows安装可以下载jnlp文件双击点击安装成服务,但是windows里面是system用户,需要注意下环境变量和家目录
|
|
下载安装常用的插件
jenkins web操作
变量设置和使用
变量使用方法
变量可以在配置job的时候使用到,常见的全局变量在http://JENKINS_URL:JENKINSPORT/env-vars.html/ windows %变量名% 比如%BRANCH_NAME% linux ${变量名} 比如${BRANCH_NAME} 插件定义的参数 $a 环境变量可以通过env.xxx = "xxx"设置
全局变量
全局变量在mange jenkinsConfigure systemglobal properties里面设置
配置gitlab token方法
- 安装git和gitlab插件
- gitlab–用户头像–settingAccess tokens添加一个token用户同步代码
- jenkinsmange jenkinsconfigure system–搜索Gitlab,添加对应的token
使用jenkins的CLI文本模式
参考官方文档 https://www.jenkins.io/zh/doc/book/managing/cli/ 建议还是使用程序API代码集成
使用blue ocean功能
参考官方文档 2.7以上插件里面搜索blue ocean安装 使用blue ocean,通过jenkins_url/blue打开或者经典UI job的左侧 打开blue ocean
pipeline的使用
在创建project的时候,我们选择流水线或者Pipeline, 就可以生成一个pipeline的job,pipeline的使用非常重要,贯穿所有jenkins的日常
pipeline生成器
url为JENKINS_URL:JENKINS_PORT/pipeline-syntax, 如果忘记了就随便打开一个pipeline job,在编辑框左下角有一个Pipeline syntax打开就好了,这个功能很棒!
pipeline的语法
tip:
- pipeline是groovy语言加了一层壳实现的jenkins描述语言,用于和jenkins进行交互,web能点的选择的都可以在jenkins pipeline里面编写,代码即实现
- pipeline通过stage来分段,通过step来分步骤,整个流程非常清晰
一个典型的pipeline
|
|
agent部分
|
|
指定parameterized参数(需要下载Publish Over SSH插件)
|
|
扩展环境变量
environment { EN1 = '' EN2 = '' }
指定job的一些build选项
|
|
编写stage
stage部分大的框架如下, 如果少了可能会报错
|
|
stage条件执行
|
|
steps里面常用操作
checkout([$class: 'GitSCM', branches: [name: '*/master']], doGenerateSubmoduleConfigurations: false, extentions:\[\[$class: 'RelativeTargetDirectory', relativeTargetDir: 'xxx'\]\], submoduleCfg:[], userRemoteConfigs: \[\[credentialsId: 'YouCredentialID', url: 'git address\]\] )
scripts里面常用操作
if (isUnix()){} else {}
|
|
|
|
pipeline自己进行get请求
|
|
清理工作空间
|
|
使用凭据Credentials
|
|
jenkins和gitlab集成
git或者gitlab可以触发webhook自动构建jenkins job
具体方法不再演示自省百度哈, 有时间再说~ **
其他相关
如果还有其他问题建议自己想想解决办法,可以写一些额外的工具脚本完成扩展,再不行baidu,google,stackoverflow devops需要我们自己大量的动手实践,最好是开发一个平台集成