I would like to cancel email sending based on the value of a boolean parameter of a parameterized job. The parameter is named "skip.email".
I tried to write a pre-send script with following content but it doesn't work :
def env = System.getenv()
logger.println("Should I skip email ? " + env['skip.email'])
cancel = env['skip.email']
Here is what I see in the logs :
Should I skip email ? null
I tried to print out all environment variables, but none of the parameters of my parameterized Jenkins job are in the list.
Please help me out, thank you in advance !
The pre-send script provides a variable named "build", which is of a type that inherits from AbstractBuild. Use the getBuildVariables method to retrieve a Map that includes the parameterized variables.
I have a parameterized variable named "target" that describes a deployment environment. I want emails to only be sent to QA if the target environment was QA's environment.
if (!build.getBuildVariables().get("target").equals("qa")) {
// cancel variable cancels the email send when set to true
cancel = true
}
tday03 answer seems correct but is not working for me, I'm injecting the vars with Environment Injector Plugin, I don't know if that's the issue. Anyway I ended up with this script:
def env = build.getEnvironment()
String official = env['OFFICIAL'];
if ((official != null) && official.equals("true")) {
cancel = false;
} else {
cancel = true;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With