Runs before the agent command and shares the same shell session, so exported variables flow into the agent process. Without a shebang, Jenkins uses /bin/sh -e, so use POSIX syntax such as . file. Add #!/bin/bash or #!/bin/zsh before using shell-specific syntax such as source. This is currently supported on Unix agents only.