Because of the presence of the ignoreMissing option for the sshagent() Workflow step, one might assume that the absence of a credential will result in a failed build. Or at the very least that the contents of the sshagent() {} block would not execute.
Neither is the case unfortunately.
With the following workflow:
node {
sshagent(["non-existent-garbage"]) {
unstash "foo"
sh "ls"
}
}
The following will occur:
[Workflow] Allocate node : Start
Running on Docker-bb75aee9cf85 in /home/jenkins/workspace/multipass/master
[Workflow] node {
[Workflow] SSH Agent : Start
FATAL: [ssh-agent] Could not find specified credentials
[ssh-agent] Looking for ssh-agent implementation...
[ssh-agent] Java/JNR ssh-agent
[ssh-agent] Started.
[Workflow] sshagent {
[Workflow] unstash
[Workflow] sh
[master] Running shell script
+ ls build/archives
jenkins.io-2.0.35+3e5ba13.zip
[Workflow] } [Workflow] SSH Agent : End
[Workflow] } [Workflow] Allocate node : End
[Workflow] End of Workflow
Finished: SUCCESS
There does not seem to be any way to prevent the execution of the block if the credentials are missing.