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