成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用Jenkins Git參數實現分支標簽動態選擇

開發 項目管理
創建一個字符參數設置一個默認值,然后 交給開發人員自己填寫。這樣的確方便了配置管理人員,給開發人員增加了負擔,手動輸入避免不了帶來了錯誤發生的可能。

1.1 為什么要使用Git參數?

我們為什么要使用 git參數呢?每個項目代碼庫都會有不同的分支,(如果你沒有用多分支流水線的情況下)對于普通的流水線項目我們可以 讓一條流水線來支持多個分支的發布,其實有時候你會發現每個分支的集成步驟都是差不多的。如果出現差異步驟我們也可以在jenkinsfile中根據不同的分支執行不同的stage。

如何解決固定分支問題?起初我們的流水線項目配置分支可能是采用的選項參數。創建一個選項參數然后把項目經常用到的分支給更新上去,最后開發人員在發布的時候來選擇對應的分支。看似解決了固定分支問題,但是后期維護起來非常困難,需要不斷的更改參數值。

創建一個字符參數設置一個默認值,然后 交給開發人員自己填寫。這樣的確方便了配置管理人員,給開發人員增加了負擔,手動輸入避免不了帶來了錯誤發生的可能。

我們來通過下面的內容,掌握如何使用 git參數實現動態分支構建呢?

1.2 在freestyle項目中使用

當你的項目還沒有使用pipeline,可以參考以下的配置來使用git參數。當然如果你在調試pipeline項目的時候使用git參數經常出現問題的話,也可以看下在freestyle項目中如何使用,了解git參數的工作原理。

我們在項目的配置中,勾選參數化構建。然后添加git參數。選擇變量名稱和參數類型。

然后鼠標滾動到下面,填寫項目代碼庫的信息

最后保存配置,回到作業首頁,我們點擊項目的參數化構建。此時你會看到項目代碼庫對應的所有分支已經出現了,我們可以選擇分支并構建了。

1.3 在Pipeline項目中使用

1.3.1 普通的Pipeline項目

這里把普通的pipeline項目定義為 未將Jenkinsfile內容保存在版本控制系統中,而是存儲在該JOB中。

首先我們添加一個srcUrl參數定義項目代碼庫的地址,便于后期在pipeline中調用。

然后添加git參數branchName,定義為分支類型。

編寫Jenkinsfile


//pipeline
pipeline{
agent { node { label "build"}}


stages{

stage("CheckOut"){
steps{
script{

println("${branchName}")

checkout([$class: 'GitSCM', branches: [[name: "${branchName}"]],
doGenerateSubmoduleConfigurations: false,
extensions: [],
submoduleCfg: [],
userRemoteConfigs: [[credentialsId: 'gitlab-admin-user',
url: "${srcUrl}"]]])

}
}
}
}
}

然后保存配置,回到作業首頁。構建一次,然后就能夠獲取到項目代碼庫的分支了。

對于將jenkinsfile保存在作業中,這種方式有利有弊,好處是可以方便我們進行代碼調試,壞處是不利于統一管理。大家酌情使用。

1.3.2 流行的Pipeline項目

這里流行的Pipeline項目我們理解為 此job使用的jenkinsfile文件存儲在git版本控制系統中。

首先我們創建一個測試jenkinsfile,保存在git項目中,命名為git.jenkinsfile。此文件內容與上面那種方式是一樣的,只不過將jenkinsfile納入了版本控制。



//pipeline
pipeline{
agent { node { label "build"}}


stages{

stage("CheckOut"){
steps{
script{

println("${branchName}")

checkout([$class: 'GitSCM', branches: [[name: "${branchName}"]],
doGenerateSubmoduleConfigurations: false,
extensions: [],
submoduleCfg: [],
userRemoteConfigs: [[credentialsId: 'gitlab-admin-user',
url: "${srcUrl}"]]])

}
}
}
}
}

然后我們來創建一個新的流水線項目。注意情況我們 現在用到了兩個倉庫,一個是Jenkinsfile倉庫,另一個是 項目代碼倉庫。創建一個參數srcUrl用于存儲項目 代碼倉庫的URL。

默認git參數會識別到Jenkinsfile的倉庫,所以我們需要在git參數的高級設置中指定我們要使用的倉庫地址。80%錯誤因為沒有指定倉庫導致獲取分支錯誤等問題。

填寫Jenkinsfile倉庫信息。

最后我們來構建一次就能夠獲取到項目代碼倉庫的分支信息了。這里經常出現獲取 分支的問題,請仔細參考上面的步驟一定要在git參數中指定好我們要用的倉庫,否則會出現分支獲取失敗等問題。

1.3.3 使用Pipeline as Code

我們將參數信息全部放到Jenkinsfile中存儲。此時生成的代碼就不區分在作業中保存還是在版本控制系統中保存了。不過還是建議大家把jenkinsfile納入版本控制系統中保存。

我們如何生成Jenkinsfile代碼?很方便的工具,我們導航到 流水線語法-> Declarative Directive Generator 。

最后完整的Jenkinsfile如下所示:



//pipeline
pipeline{
agent { node { label "build"}}

parameters {
string defaultValue: 'http://192.168.1.200:30088/idevops/idevops-maven-service.git',
description: '',
name: 'srcUrl',
trim: false

gitParameter branch: '',
branchFilter: '.*',
defaultValue: 'origin/master',
description: '',
name: 'branchName',
quickFilterEnabled: false,
selectedValue: 'NONE',
sortMode: 'NONE',
tagFilter: '*',
type: 'PT_BRANCH',
useRepository: 'http://192.168.1.200:30088/idevops/idevops-maven-service.git'

}
stages{

stage("CheckOut"){
steps{
script{

println("${branchName}")

checkout([$class: 'GitSCM', branches: [[name: "${branchName}"]],
doGenerateSubmoduleConfigurations: false,
extensions: [],
submoduleCfg: [],
userRemoteConfigs: [[credentialsId: 'gitlab-admin-user',
url: "${srcUrl}"]]])

}
}
}
}
}

同樣的配置過程,我們構建 一次之后就能夠 正常獲取到項目代碼庫的分支信息了。

1.4 總結

你是不是在使用git參數時也遇到了相同的問題呢?此文章能夠 幫助到大家避免問題的出現。這個git參數還是有些不方便的。隨著內部devops平臺的功能擴展,目前發布都是通過 devops平臺中來完成參數的選擇,最后生成一個Jenkins作業來運行。這種情況下選擇分支和標簽就放在了外圍的devops平臺中了,這樣jenkins的參數使用什么類型都無所謂了。

責任編輯:姜華 來源: DevOps云學堂
相關推薦

2021-03-29 08:03:13

Git技巧分支

2020-07-09 08:00:25

Git分支模式

2018-06-08 09:27:08

GitLinux開源

2014-08-08 10:20:23

Git版本管理系統

2024-04-03 09:03:05

項目分支管理

2022-05-25 16:51:41

Git 分支重命名開發者

2023-12-01 11:05:29

Git 分支

2022-11-07 08:01:18

Git分支管理

2022-10-26 09:22:19

git命令Linux

2023-10-09 08:39:33

Git Flow分支管理模型

2012-03-13 14:33:55

JavaJenkinsgit

2012-03-20 10:31:11

GitMavenJava

2021-03-28 17:21:15

Git分支策略

2020-12-29 09:27:40

Jenkins分支管道CI

2021-03-18 14:47:42

Jenkins git submodu代碼

2020-05-28 10:45:31

Git分支合并

2025-06-09 01:00:00

2025-05-26 09:52:42

IDEAGit分支

2022-08-11 15:45:13

Git

2024-07-22 14:14:01

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲视频中文字幕 | 久青草影院| 日韩精品在线一区 | 男人av网 | 日韩a级片 | 久久99精品久久久久久青青日本 | 国产女人叫床高潮大片免费 | 午夜精品久久久久久久久久久久久 | 国产电影一区二区 | 日韩在线小视频 | 97超碰站| 日韩精品一区二区三区 | 成人在线免费电影 | 北条麻妃99精品青青久久主播 | 天天干视频网 | 国产三区av | 羞羞的视频免费看 | 欧美一级毛片久久99精品蜜桃 | 在线一区二区三区 | 超碰在线播 | 做a视频在线观看 | 午夜免费网站 | 成年女人免费v片 | 涩色视频在线观看 | 午夜激情网| 羞羞视频在线观看网站 | 中文字幕视频在线观看 | 黄在线 | 日韩久久久久久 | 成人天堂 | 午夜影院在线观看免费 | 日韩中文字幕在线不卡 | 国产一级在线 | 国产一区影院 | 精品一区二区三区视频在线观看 | 亚洲国产中文在线 | 欧美成人影院 | 亚洲国产免费 | 久久精品国产免费 | 欧美影院久久 | 久久久精品国产 |