流水线的语法分为: 声明式和脚本式
基本操作
没有pipeline插件的先安装一下。创建一个流水线项目。
创建完成后,点击配置,直接拉到最后
之前做过传统的项目配置。回忆一下流程:
需求:
参数化构建,选择对应分支。拉取gitlab代码,实现项目更新。
我们思路还是以前的配置思路,点击那个流水线语法,点击第二项Directive Generator,
选择parameters (上面的指令表写明了它就是负责提供参数化的),然后就像配置传统项目那样填写信息
最终点击生成代码。
自动生成流水线代码
复制下来。回到之前的流水线页面
不清楚语法结构的,可以先生成一个测试脚本语法
pipeline {
agent any
stages {
stage('Hello') {
steps {
echo 'Hello World'
}
}
}
}
agent any ---控制执行的节点
stage是任务块
steps 是某一任务中的步骤块
将刚才生成的git参数化构建(功能是获取git分支列表)的代码粘贴上面
再去代码片短器生成获取git代码的
生成出来的就是 “拉取代码”这个任务块的主要步骤,所以将其粘贴到响应的版块中
pipeline {
agent any
parameters {
gitParameter branch: '', branchFilter: 'origin/(.*)', defaultValue: 'master', description: '选择你要的分支', name: 'branch', quickFilterEnabled: false, selectedValue: 'NONE', sortMode: 'NONE', tagFilter: '*', type: 'PT_BRANCH'
}
stages {
stage('拉取代码') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/$branch']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'd386c248-cf59-45c5-9731-b8f2d42411e9', url: 'http://192.168.1.112:85/webservice/devops_project.git']]])
}
}
stage('打印-查看') {
steps {
sh label: '', script: 'ls'
}
}
}
}
PS:默认分支名:最好不带origin/ ,直接写master,不然有时候直接用分支过滤,会不起作用。直接写master更省事。
运行一次,第一次会失败,执行第二次就会获取到分支列表正常执行了。并且会发现,配置项目里jenkins已经根据流水线代码完成了传统的参数化配置界面。
点击Log可以查看个步骤的执行过程与结果。
if判断
流水线脚本中还支持条件判断。这要用到开头的指令清单中提到 script 关键字,如
结果:
将脚本文件放在git项目仓库中
一般来讲,最好是测试没问题的流水线脚本跑通以后,确认无误。将其复制下来,在git仓库中,新建Jenkinsfile 空文件,粘贴上去。提交版本库中。
运行的时候,引用git仓库中的jenkinsfile文件
我这里直接在dev创建了一个jenkinsfile. 如果在master创建,以后创建新分支的时候都会自动创建好jenkinsfile为其他分支创建流水线脚本。