【发布时间】:2017-04-09 21:07:57
【问题描述】:
假设 Jenkins 构建作业具有不同的提升作业(即,将构建提升到不同的环境),如何使用 Jenkins API 触发特定构建的特定提升作业?
【问题讨论】:
假设 Jenkins 构建作业具有不同的提升作业(即,将构建提升到不同的环境),如何使用 Jenkins API 触发特定构建的特定提升作业?
【问题讨论】:
综合不同来源的答案得出这个结论:
$Username = "Username"
$APItoken = '12345'
$Credential = "$($Username):$($APItoken)"
$EncodedCredential = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($Credential))
$BasicAuthValue = "Basic $EncodedCredential"
$Headers = @{
Authorization = $BasicAuthValue
}
Write-Output "Promoting build $LatestBuildNumber to Environment..."
Invoke-WebRequest -URI "http://jenkins.prd.company.com/job/jobname/buildnumber/promotion/forcePromotion?name=PromoteToEnvironment" -Headers $Headers
【讨论】:
我知道这是一个旧线程,但只是为了帮助社区。p>
使用CURL的Shell解决方案:
user_name="jenkins_user"
user_token="token"
promotion_name="Test_Promote"
jenkins_url="http://build-server.com"
JOB_NAME="job_name"
JOB_NO="job-no"
url="--silent -u $user_name:$user_token $jenkins_url/job/$JOB_NAME/$JOB_NO/promotion/forcePromotion?name=$promotion_name"
curl $url
如何生成jenkins用户token:https://jenkins.io/blog/2018/07/02/new-api-token-system/
【讨论】: