1:eclipse环境的搭建
2:基本语法介绍
2.1:指定node节点或者工作空间(workspace)
- 1:指定节点运行
pipeline {
agent {
node {
label "demo-node" //label可以是node节点名称 也可以是node节点标签
customWorkspace "${workspace}" //指定工作空间
}
}
stages {
stage('getCode') {
steps {
echo 'workspace is ${workspace}'
echo 'Hello World -- getCode'
}
}
stage('Test') {
steps {
echo 'Hello World -- testing'
}
}
}
}
- 2:非指定节点运行(默认master节点运行)
pipeline {
agent any
stages {
stage('getCode') {
steps {
echo 'workspace is ${workspace}'
echo 'Hello World -- getCode'
}
}
stage('Test') {
steps {
echo 'Hello World -- testing'
}
}
}
}
2.2:options选项
pipeline {
agent any
stages {
stage('getCode') {
steps {
echo 'workspace is ${workspace}'
echo 'Hello World -- getCode'
}
}
stage('Test') {
steps {
echo 'Hello World -- testing'
}
}
}
}
2.3:stages阶段的定义
pipeline {
agent any
//下载代码打包
stages {
stage('getCode') { //阶段名称
steps { //执行不愁
timeout(time:5 , unit:"MINUTES"){ //设置超时时间为5分钟
script{
println("拉取代码打包构建")
}
}
}
}
//扫描代码
stage('codeScan') { //阶段名称
steps { //执行不愁
timeout(time:30 , unit:"MINUTES"){ //设置超时时间为30分钟
script{
println("扫描代码")
}
}
}
}
}
}
2.4:构建后的操作-POST
-
always() 总是执行的脚本片段
-
success() 成功后执行的脚本片段
-
failure() 失败后执行的脚本片段
-
aborted() 取消后执行的脚本片段
-
currentBuild 是一个全局变量
- description:构建描述
pipeline {
agent any
//下载代码打包
stages {
stage('getCode') { //阶段名称
steps { //执行不愁
timeout(time:5 , unit:"MINUTES"){ //设置超时时间为5分钟
script{
println("拉取代码打包构建")
}
}
}
}
//扫描代码
stage('codeScan') { //阶段名称
steps { //执行不愁
timeout(time:30 , unit:"MINUTES"){ //设置超时时间为30分钟
script{
println("扫描代码")
}
}
}
}
}
post {
always {
script {
println("这个是一直要执行的")
}
}
success {
script {
currentBuild.description = "/n 构建成功"
}
}
failure {
script {
currentBuild.description = "/n 构建失败"
}
}
aborted {
script {
currentBuild.description = "/n 构建取消"
}
}
}
}
3: Jenkins shareLibrary
3.1:执行Jenkins shareLibrary
1:src目录是必须要的,类似java的标准源目录结构,执行流水线时,次目录将会添加到类路径中
2:vars托管脚本文件(非必要)
3:resources目录允许libraryResource从外部库中使用步骤加载相关的非Groovy文件(非必要)
文件目录结构如下:
执行jenkins的shareLibrary的步骤如下
-
1:如果需要从git上来取jenkinsfile来执行pipeline需要做如下的配置Manage Jenkins » Configure System » Global Pipeline Libraries. (default version:为分支版本 )
-
2:Pipeline script fromSCM的方式去执行jenkinsfile
-
3:pipeline script的方式去运行jenkinsfile(@Library中的参数为项目名称)
-
4:vars下面的方法可以直接调用
1:比如vars下有一个方法hello.groovy
此时我们可以在jenkinsfile中直接写hello(),这样就可以执行hello.groovy这个脚本
4:node运行
node("demo-node"){ //在节点或者标签叫着demo-node的机器上运行下面的构建步骤
stage("GetCode"){
echo 'get code'
}
stage("build"){
echo 'start build'
}
}
最后可以参考:https://github.com/zeyangli/Jenkinsdocs/blob/master/chapter/第十章-流水线实践(二).md