I am really confused by all of this.
First, I'm running 2.138.2 LTS (I know, I need to update), with all of the latests plugin version for pipeline (and no EnvInject plugin). I have tried the following, with no success:
1st:
environment {
DCP_VERSION = "1.2-alpha"
DCP_LOC = "/opt/dcp/${DCP_VERSION}"
QUARTUS_HOME = "/opt/inteldevstack/intelFPGA_pro/quartus"
MTI_HOME = "/opt/altera/17.1/modelsim_ase"
TBB_HOME = "/opt/intel/tbb"
PATH = "${MTI_HOME}/linux:${MTI_HOME}/bin:${QUARTUS_HOME}/bin:${DCP_LOC}/bin:${PATH}"
LD_LIBRARY_PATH = '${LD_LIBRARY_PATH}:${TBB_HOME}/lib/intel64_lin/gcc4.7'
}
Produced this error:
nohup: failed to run command 'sh': No such file or directory
2nd (based on googling the sh command error)
environment {
DCP_VERSION = "1.2-alpha"
DCP_LOC = "/opt/dcp/${DCP_VERSION}"
QUARTUS_HOME = "/opt/inteldevstack/intelFPGA_pro/quartus"
MTI_HOME = "/opt/altera/17.1/modelsim_ase"
TBB_HOME = "/opt/intel/tbb"
PATH+EXTRA = "${MTI_HOME}/linux:${MTI_HOME}/bin:${QUARTUS_HOME}/bin:${DCP_LOC}/bin"
LD_LIBRARY_PATH = '${LD_LIBRARY_PATH}:${TBB_HOME}/lib/intel64_lin/gcc4.7'
}
Now I get this error:
(PATH + EXTRA) is a binary expression, but it should be a variable expression at line: 11 column: 19. File: WorkflowScript @ line 11, column 19.
PATH+EXTRA="${MTI_HOME}/linux:${MTI_HOME}/bin:${QUARTUS_HOME}/bin:${DCP_LOC}/bin"
Note that neither of these solutions are actually documented in the pipeline guide (https://jenkins.io/doc/book/pipeline/syntax/), and BOTH options are fully acceptable and copied from the built-in syntax generator.
So, what is the right way to do this? I can't set global paths as a lot of these paths change depending on the job (for example, MTI_HOME will change depending on simulator used - future script development task)
Update: I got around the first issue by setting Jenkins global shell to /bin/bash. Not cross platform, but works for now.
If I symlink /bin/sh to my toolchain path and change env to /bin/env, the output shows the shell using this path variable:
PATH=/path/to/toolchain/bin:$PATH - just like the groovy output.