I have the following setenv block:
<setenv verbose="true" failonerror="false">
<variable name="test" value="${environment::get-variable('some_non_existing_envvar')}" if="${environment::variable-exists('some_non_existing_envvar')}" />
</setenv>
The environment variable does not exist, but I get a fatal error as the value is still attempted to be set.
Function call failed.
Expression: ${environment::get-variable('some_non_existing_envvar')}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Environment variable "some_non_existing_envvar" does not exist.
If I move the "if" statement up to the setenv level, the variable is not set which is what I expect.
The workaround I am using is this:
<if test="${environment::variable-exists('some_non_existing_envvar')}" >
<setenv verbose="true" name="test" value="${environment::get-variable('some_non_existing_envvar')}">
</if>
I'll take a look but I can't promise anything. I'll keep you posted.