gpt4 book ai didi

.net - 批准后使用 jenkinsfile 构建推广

转载 作者:行者123 更新时间:2023-12-05 01:42:04 25 4
gpt4 key购买 nike

我需要使用 jenkins 文件将我的构建提升到生产环境中,只有在使用 servicenow change ticket ticket 或手动批准的变更管理批准的情况下。

我想要这样的东西:- 产品构建只有在经理批准后才能手动触发(他/她应该收到带有批准/拒绝链接的批准邮件) 或者- 如果与更改关联的 ServiceNow 更改票证得到所有批准者的批准,如果 (changeticket== "APPROVED") 那么您可以在生产中触发构建部署。

我的 jenkinsfile 看起来像这样(这是一个示例代码)

  pipeline {
agent any
environment {
dotnet = 'path\to\dotnet.exe'
}

stages {
stage('Checkout') {
steps {
git credentialsId: 'userId', url:
'https://github.com/NeelBhatt/SampleCliApp', branch: 'master'
}
}
stage('Restore PACKAGES') {
steps {
bat "dotnet restore --configfile NuGet.Config"
}
}
stage('Clean') {
steps {
bat 'dotnet clean'
}
}
stage('Build') {
steps {
bat 'dotnet build --configuration Release'
}
}
stage('Pack') {
steps {
bat 'dotnet pack --no-build --output nupkgs'
}
}
stage('Publish') {
steps {
bat "dotnet nuget push **\\nupkgs\\*.nupkg -k yourApiKey -s
http://myserver/artifactory/api/nuget/nuget-internal-stable/com/sample"
}
}
}
}

提前致谢!皮尤什

最佳答案

您需要在我们的管道中添加一个 INPUT 步骤,以请求用户输入并对结果采取行动。在您的情况下,您可以添加一个电子邮件步骤,以将电子邮件链接发送到此管道,以请求批准。在输入步骤获得批准后,部署步骤将采取行动。

stage("Stage with input") {
steps {
def userInput = false
script {
def userInput = input(id: 'Proceed1', message: 'Promote build?', parameters: [[$class: 'BooleanParameterDefinition', defaultValue: true, description: '', name: 'Please confirm you agree with this']])
echo 'userInput: ' + userInput

if(userInput == true) {
// do action
} else {
// not do action
echo "Action was aborted."
}

}
}
}

可选:您可以用超时包围它,这样它就不会永远等待。

发送电子邮件有几种不同的方式,但这是其中一种:

// send to email
emailext (
subject: "Waiting for your Approval! Job: '${env.JOB_NAME} [${env.BUILD_NUMBER}]'",
body: """<p>STARTED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]':</p>
<p>Check console output at &QUOT;<a href='${env.BUILD_URL}'>${env.JOB_NAME} [${env.BUILD_NUMBER}]</a>&QUOT;</p>""",
recipientProviders: [[$class: 'DevelopersRecipientProvider']]
)

请根据您的需要进行修改。

关于.net - 批准后使用 jenkinsfile 构建推广,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52631693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com