strabo
strabo

Reputation: 21

Jenkins pipeline -how to read file from outside workspace

i have a script that should run on both linux and windows agents.
this script reads a config file sitting on a network drive. it gets worse - we have 2 different jenkins masters - one on docker ubuntu, and one on master. they run different jobs but with the same script.

so now -
using script.readFile is out of the question because the file is outside of workspace.
using groovy File(path).text is also problematic because the path (the mounts) is different on windows/linux (the jenkins masters).

There is a shared env var across all machines to get the right mount. when using groovy File, this doesn't work "${SOME_ENV_VAR}/file" it doesn't translate the env var

is there a way to use jenkins pipeline to read a file outside workspace? this would be the best solution. or some other solution you can think of? Thanks

Upvotes: 0

Views: 5640

Answers (1)

smelm
smelm

Reputation: 1334

using script.readFile is out of the question because the file is outside of workspace.

Not really. Assuming you are referring to the Jenkins step readFile you still can use it. It just takes a whole lot of dots

def config = readFile "../../../../mnt/config/my_config.txt

You'd have to figure out the exact amount of dots yourself

Upvotes: 1

Related Questions