| Converted this Scripted Pipeline:
/* Only keep the 10 most recent builds. */
properties([[$class: 'BuildDiscarderProperty',
strategy: [$class: 'LogRotator', numToKeepStr: '10']]])
stage ('Build') {
node {
// Checkout
checkout scm
// install required bundles
sh 'bundle install'
// build and run tests with coverage
sh 'bundle exec rake build spec'
// Archive the built artifacts
archive (includes: 'pkg/*.gem')
// publish html
publishHTML ([
allowMissing: false,
alwaysLinkToLastBuild: false,
keepAll: true,
reportDir: 'coverage',
reportFiles: 'index.html',
reportName: "RCov Report"
])
}
}
To this Declarative:
pipeline {
agent any
options {
buildDiscarder(logRotator(numToKeepStr:'10'))
}
stages {
stage ('Build') {
steps {
// install required bundles
sh 'bundle install'
// build and run tests with coverage
sh 'bundle exec rake build spec'
}
}
}
post {
success {
// Archive the built artifacts
archive includes: 'pkg/*.gem'
}
always {
// publish html
publishHTML ([
allowMissing: false,
alwaysLinkToLastBuild: false,
keepAll: true,
reportDir: 'coverage',
reportFiles: 'index.html',
reportName: "RCov Report"
])
}
}
}
Fails with this output:
First time build. Skipping changelog.
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 28: Invalid parameter "allowMissing", did you mean "target"? @ line 28, column 17.
allowMissing: false,
^
WorkflowScript: 29: Invalid parameter "alwaysLinkToLastBuild", did you mean "target"? @ line 29, column 17.
alwaysLinkToLastBuild: false,
^
WorkflowScript: 30: Invalid parameter "keepAll", did you mean "target"? @ line 30, column 17.
keepAll: true,
^
WorkflowScript: 31: Invalid parameter "reportDir", did you mean "target"? @ line 31, column 17.
reportDir: 'coverage',
^
WorkflowScript: 32: Invalid parameter "reportFiles", did you mean "target"? @ line 32, column 17.
reportFiles: 'index.html',
^
WorkflowScript: 33: Invalid parameter "reportName", did you mean "target"? @ line 33, column 17.
reportName: "RCov Report"
^
WorkflowScript: 27: Missing required parameter: "target" @ line 27, column 13.
publishHTML ([
^
7 errors
Changed Declarative to this and it succeeds ( {target:} is not needed in Scripted):
pipeline {
agent any
options {
buildDiscarder(logRotator(numToKeepStr:'10'))
}
stages {
stage ('Build') {
steps {
// install required bundles
sh 'bundle install'
// build and run tests with coverage
sh 'bundle exec rake build spec'
}
}
}
post {
success {
// Archive the built artifacts
archive includes: 'pkg/*.gem'
}
always {
// publish html
publishHTML ([
allowMissing: false,
alwaysLinkToLastBuild: false,
keepAll: true,
reportDir: 'coverage',
reportFiles: 'index.html',
reportName: "RCov Report"
])
}
}
}
|