我有一個管道,我剛剛添加了兩個引數來構建發布或除錯(引數被稱為發布或除錯)。該管道檢查每次提交,然后構建發布(C 程式),但我想每天構建一次除錯,比如每天12點。有什么辦法可以做到這一點嗎?這是該管道的一個非常簡短的版本:
pipeline {
階段 {
stage('設定引數') {
步驟 {
腳本 {
properties([
parameters([
choice()
defaultValue: 'RELEASE',
choices: ['RELEASE'/span>, 'DEBUG'/span>],
name: 'BUILD_CONFIG'stage('Build release') {
當 {
運算式 {
return params.BUILD_CONFIG == 'RELEASE'
}
}
步驟{
腳本{
def msbuild = tool name: 'MSBuild', type: 'hudson.plugins.msbuild.MsBuildInstallation'.
bat ""${msbuild}" /Source/project-GRDK.sln /t:Rebuild /p:configuration="Release Steam D3D11""。
}
}
}
stage('Build debug'){
當 {
運算式 {
return params.BUILD_CONFIG == 'DEBUG'
}
}
步驟{
腳本{
def msbuild = tool name: 'MSBuild', type: 'hudson.plugins.msbuild.MsBuildInstallation'.
bat ""${msbuild}" /Source/project-GRDK.sln /t:Rebuild /p:configuration="Debug Steam D3D11""
}
}
}
}
}
uj5u.com熱心網友回復:
可以通過currentBuild.rawBuild.getCause(Class<T> type)來確定構建的原因。你正在尋找的型別是UserIdCause。下面將建立一個階段,以防作業不是由用戶(手動)觸發的。在這個階段,步驟來自構建除錯階段。
stage('Build debug if time triggered'/span>) {
when {
運算式 {
return currentBuild.rawBuild.getCause(hudson.model.Cause$UserIdCause) == null }
}
}
步驟 {
腳本 {
def msbuild = 工具名稱。'MSBuild', type: 'hudson.plugins.msbuild.MsBuildInstallation'.
bat ""${msbuild}" /Source/project-GRDK.sln /t:Rebuild /p:configuration="Debug Steam D3D11""/span>
}
你還需要在Build release和Build debug階段添加一個運算式,以便在作業沒有被用戶(手動)觸發時阻止構建。
stage('Build release'/span>){
when {
allOf {
運算式 {
return params.BUILD_CONFIG == 'RELEASE'.
}
運算式 {
return currentBuild.rawBuild.getCause(hudson.model.Cause$UserIdCause) != null !
}
}
}
...
Docu:
https://javadoc.jenkins-ci.org/hudson/model/Cause.html
https://javadoc.jenkins-ci.org/hudson/model/Run.html
如何區分Jenkins管道中的構建觸發器
uj5u.com熱心網友回復:
另一個選擇是創建第二個作業,它可以用正確的引數觸發構建作業:
pipeline {
代理人 any
觸發器 {
cron('H 12 * * *')
}
階段 {
stage('Build xxx debug') {
步驟 {
建立 job: "you-job-name-here", parameters: [
choice(name: 'BUILD_CONFIG', value: 'DEBUG')
]
}
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/333013.html
標籤:
上一篇:如何在沒有行內腳本的情況下異步加載CSS(符合CSP的要求
下一篇:通用制約因素
