- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要使用 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 "<a href='${env.BUILD_URL}'>${env.JOB_NAME} [${env.BUILD_NUMBER}]</a>"</p>""",
recipientProviders: [[$class: 'DevelopersRecipientProvider']]
)
请根据您的需要进行修改。
关于.net - 批准后使用 jenkinsfile 构建推广,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52631693/
我有下一个方程组: #dY0=/dt = k1*S - k2*Y1*Y0 #dY1/dt = k3*S - k4*Y1 其中 S(t) 是一个阶梯函数,在 t = 4、8、12 等时增加一个单位。我的
卡在这个上了。 我刚刚开始使用 RubyMotion,现在又开始使用 ProMotion。我只是在制作一个待办事项风格的应用程序,只是为了学习一些东西。我在将数据保存到文件时遇到问题。现在忽略保存数据
我正在使用 PyQt 并尝试在 QtDesigner 中推广一个小部件。如果我在“头文件”字段中指定包含我的小部件子类的文件的完整模块路径,我就能让它工作。 有没有更好的方法将 QtDesigner
我一直在学习 Qt Designer 中的子类化和小部件提升,并且我提升了一些 QPushButtons。我提升的类代表计算器上的数字键,并在构造函数中接受一个参数。给定的参数是按钮的编号,它是作为
我使用 Cucumber 和 Capybara 编写了一个功能来测试我的网络应用程序的默认配置。部分功能如下所示: And the page has a photo labeled "Device"
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improve
我正在编写一个 C++ 代码来进行 2D 和 3D 计算。主函数有一个参数,我可以从中判断是进行 2D 还是 3D 计算(dim=2 或 dim=3)。启用/禁用基于 dim 编译特定代码段的最佳选择
我的 Facebook 应用程序具有已批准的ads_read、manage_pages ads_management、business_management 和 Ads Management 标准访问
我尝试重新实现 mouseClickEvent,因为我需要区分右键单击和左键单击。我将我的QListView提升为WavList,并编写了以下代码,但出现了错误。 wavlist.h #ifndef
我是一名优秀的程序员,十分优秀!