If file is not executable all user sees is:
Failing task since return code of [/home/bamboo/bamboo-agent-home/xml-data/build-dir/PLAY-ES-JOB1/myScript.sh] was -1 while expected 0
-1 is not the proper return code for permission errors, so user is left clueless.
Inside the task code however:
if (scriptFile.exists()) {
// This can happen due to noexec mounted filesystems or the file didn't have perms in the first place
if (config.isRunAsExecutable() && !scriptFile.canExecute()) {
// *** This should emit to build log!
log.warn("Command [" + scriptFile.getAbsolutePath() + "] is not executable, trying to run anyway.");
}
} else {
// *** This should emit to build log too!
log.info("File [" + scriptFile.getAbsolutePath() + "] doesn't exist, trying to run [" + config.getScriptFilename() + "] anyway."); //maybe it's on PATH, let's see what happens
}
So the system is properly warning about the execution issue, but only in a place system admins will see it. This should be emitted as an error/NOTICE to the build log.