我想从Jenkins声明性管道中设置构建名称和描述,但是找不到正确的方法。我尝试在管道后使用环境括号,在代理括号中使用节点括号,等等。我总是得到语法错误。
我的Jenkinsfile的最后版本是这样的:
pipeline {
stages {
stage("Build") {
steps {
echo "Building application..."
bat "%ANT_HOME%/bin/ant.bat clean compile"
currentBuild.name = "MY_VERSION_NUMBER"
currentBuild.description = "MY_PROJECT MY_VERSION_NUMBER"
}
}
stage("Unit Tests") {
steps {
echo "Testing (JUnit)..."
echo "Testing (pitest)..."
bat "%ANT_HOME%/bin/ant.bat run-unit-tests"
}
}
stage("Functional Test") {
steps {
echo "Selenium..."
}
}
stage("Performance Test") {
steps {
echo "JMeter.."
}
}
stage("Quality Analysis") {
steps {
echo "Running SonarQube..."
bat "%ANT_HOME%/bin/ant.bat run-sonarqube-analysis"
}
}
stage("Security Assessment") {
steps {
echo "ZAP..."
}
}
stage("Approval") {
steps {
echo "Approval by a CS03"
}
}
stage("Deploy") {
steps {
echo "Deploying..."
}
}
}
post {
always {
junit '/test/reports/*.xml'
}
failure {
emailext attachLog: true, body: '', compressLog: true, recipientProviders: [[$class: 'CulpritsRecipientProvider'], [$class: 'DevelopersRecipientProvider']], subject: '[JENKINS] MY_PROJECT build failed', to: '...recipients...'
}
success {
emailext attachLog: false, body: '', compressLog: false, recipientProviders: [[$class: 'DevelopersRecipientProvider']], subject: '[JENKINS] MY_PROJECT build succeeded', to: '...recipients...'
}
}
}
错误是:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 11: Expected a step @ line 11, column 5.
currentBuild.name = "MY_VERSION_NUMBER"
^
WorkflowScript: 12: Expected a step @ line 12, column 5.
currentBuild.description = "MY_PROJECT MY_VERSION_NUMBER"
^
理想情况下,我希望能够从构建中读取MY_PROJECT和MY_VERSION_NUMBER。属性文件,或从Jenkins构建日志。对于该要求的任何指导也将不胜感激。
更新
根据我下面的回答,下面的工作:
stage("Build") {
steps {
echo "Building application..."
bat "%ANT_HOME%/bin/ant.bat clean compile"
script {
def props = readProperties file: 'build.properties'
currentBuild.displayName = "v" + props['application.version']
}
}
现在,通过读取构建,在管道期间自动设置构建版本。属性文件。
如果要从参数将生成名称设置为作业,可以使用
当前构建。displayName=“${nameOfYourParameter}”
。确保使用双引号而不是单引号。
作业配置
使用参数生成作业
创造历史
参考:如何在管道作业中设置构建名称?
我认为这将做你想要的。我能够在脚本
块中完成它:
pipeline {
stages {
stage("Build"){
steps {
script {
currentBuild.displayName = "The name."
currentBuild.description = "The best description."
}
... do whatever.
}
}
}
}
该脚本是一种退出声明性管道的逃生舱口。可能有一种声明性的方法可以做到这一点,但我找不到它。还有一个注意事项。我认为您想要currentBuild.displayName
而不是currentBuild.name
在留档Jenkins全局变量中,我没有看到当前构建下的name属性。
问题内容: 我想通过Jenkins声明性管道设置构建名称和描述,但是找不到正确的方法。我尝试在管道之后使用环境支架,在代理支架中使用节点支架,等等。我总是会收到语法错误。 我的Jenkinsfile的最新版本如下: 错误是: 理想情况下,我希望能够从build.properties文件或Jenkins构建日志中读取MY_PROJECT和MY_VERSION_NUMBER。关于该要求的任何指导也将不
问题内容: 我正在尝试将jenkins管道作为代码来做。我正在使用Github组织文件夹插件来扫描Github组织并为每个分支创建作业。有没有一种方法可以明确定义从Jenkinsfile获取的管道作业的名称?我还想为作业添加一些说明。 问题答案: 您需要使用如下所示。该部分很重要 编辑:上面一个重命名生成,其中原始问题是关于重命名作业。在管道中执行以下脚本可以做到这一点(这需要 适当的权限 )
问题内容: 我正在尝试用一个使用Jenkins管道插件并从项目存储库加载a的新任务替换当前使用旧式Jenkins作业被黑客入侵的当前构建管道。 遗留作业所做的一件事是使用Description setter插件将构建说明设置为包含Mercurial哈希,用户名和当前版本,以便轻松查找构建。 有没有办法用Jenkins管道插件复制/模拟这种行为? 问题答案: 只是想通了。管道作业公开具有可写属性的全
在Jenkins脚本管道中,您可以像这样设置PATH env变量: 注意这里解释的路径MAVENhttps://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#code-withenv代码集环境变量: 要设置的环境变量列表,每个变量的形式为VARIABLE=value或VARIABLE=以取消设置其他定义的变量。您还可以使用语法PATH wh
问题内容: 我正在使用声明性管道语法在Docker容器中执行一些CI工作。 我注意到,用于Jenkins的Docker插件使用主机中jenkins用户的用户ID和组ID运行一个容器(即,如果jenkins用户具有用户ID 100和组ID 111,它将运行管道以创建带有命令)。 我遇到了一些问题,因为该容器将以不存在的用户运行(特别是我遇到了用户没有主目录的问题)。所以我想到了创建一个Dockerf
我刚开始使用Jenkins声明性管道。在我支持一些类似的项目时,我考虑将类似的管道步骤(甚至阶段)放入可重用的构建块中。这些区块应保持在一个中心点,然后由单独的管道包括在内(例如:干燥)。 我将共享库视为脚本化管道的一个选项,但我不确定它是否也适用于声明性管道。 你知道在Jenkins声明性管道中使用像构建块这样的东西的方法吗? 举例说明: 如果您有一个用于Maven项目的标准管道(例如Sprin