【发布时间】:2017-11-23 06:47:57
【问题描述】:
我开始使用Jenkins declarative Pipeline。从我看到的一些示例中,我注意到 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'
}
}
}
}
在其他示例中,我注意到 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/**'
}
我无法找到关于何时/为什么使用这些的可靠文档。有没有人知道为什么这些不同以及何时适合使用它们中的任何一个?
我不确定,但我相信 'node' 指令用于脚本化管道而不是声明性管道。
提前感谢您的任何指导。
【问题讨论】: