J09*_*991 45 jenkins jenkins-pipeline
我开始使用Jenkins声明管道.从我看到的一些例子中,我注意到Jenkinsfile是使用Pipeline指令设置的:
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'make'
}
}
stage('Test'){
steps {
sh 'make check'
junit 'reports/**/*.xml'
}
}
stage('Deploy') {
steps {
sh 'make publish'
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在其他示例中,我注意到Jenkinsfile是使用节点指令设置的:
node {
stage 'Checkout'
checkout scm
stage 'Build'
bat 'nuget restore SolutionName.sln'
bat "\"${tool 'MSBuild'}\" SolutionName.sln /p:Configuration=Release /p:Platform=\"Any CPU\" /p:ProductVersion=1.0.0.${env.BUILD_NUMBER}"
stage 'Archive'
archive 'ProjectName/bin/Release/**'
}
Run Code Online (Sandbox Code Playgroud)
我还没有找到关于何时/为何使用这些内容的确切文档.有没有人知道为什么这些不同以及什么时候适合使用它们?
我不确定,但我相信'node'指令用于脚本管道而不是声明管道.
提前感谢任何指导.
bur*_*ttk 50
是的,顶级node意味着脚本化管道,顶级pipeline意味着声明性管道.
声明似乎是更具有前瞻性的选项,也是人们推荐的选项,就像在这个jenkins用户列表帖子中,核心贡献者说"go declarative".它是Visual Pipeline Editor唯一可以支持的.它支持验证.它最终拥有脚本的大部分功能,因为你可以在大多数情况下回归脚本.偶尔会有人提出一个用例,他们不能完全按照声明的方式做他们想做的事情,但这通常是那些已经使用脚本一段时间的人,这些功能差距很可能会及时关闭.最后,如果你真的不得不在一个或另一个上保释,编写一个程序化的翻译器从声明到脚本将比另一种方式更容易(根据定义,因为语法受到更严格的限制).
从一般可用性博客文章中获取更多关于声明的优点:https://jenkins.io/blog/2017/02/03/declarative-pipeline-ga/
我可以找到的最官方文档(截至2017年6月21日):https://jenkins.io/doc/book/pipeline/syntax/
| 归档时间: |
|
| 查看次数: |
16785 次 |
| 最近记录: |