I am trying to run a simple pipeline-script in Jenkins with 2 stages. The script itself creates a textFile and checks if this one exists. But when i try to run the job I get an "Expected a step" error.
I have read somewhere that you cant have an if
inside a step so that might be the problem but if so how can I check without using the if
?
pipeline {
agent {label 'Test'}
stages {
stage('Write') {
steps {
writeFile file: 'NewFile.txt', text:
'''Sample HEADLINE'''
println "New File created..."
}
}
stage('Check') {
steps {
Boolean bool = fileExists 'NewFile.txt'
if(bool) {
println "The File exists :)"
}
else {
println "The File does not exist :("
}
}
}
}
}
I expect the script to create a "NewFile.txt" in the agents workspace and print a text to the console confirming that it exists.
But I actually get two "Expected a step" errors.
At the Line starting with Boolean bool = ...
and at if(bool) ...
You are missing a script{}
-step which is required in a declarative pipeline.
The script step takes a block of Scripted Pipeline and executes that in the Declarative Pipeline.
stage('Check') {
steps {
script {
Boolean bool = fileExists 'NewFile.txt'
if (bool) {
println "The File exists :)"
} else {
println "The File does not exist :("
}
}
}
}