У меня есть простая работа конвейера на: 1) извлекает GIT ветвь 2) перейдите в каталог запуска 3) выполнить существующий скрипт для запуска тестовДженкинс трубопровода - файл не найден
самого сценария трубопровода очень просто в данный момент:
stage 'build'
node {
git url: '[email protected]:nip_5g_fpga', branch: "Phase_UL_1a"
sh "pwd"
sh "echo $PATH"
sh "ls"
dir ('nip_fpga/verification/src/UE/env/top_level/run') {
sh "source vcs_bash.sh 1"
}
}
Когда я запускаю это, я получаю следующее сообщение об ошибке (показывать только часть консоли):
Running
in /var/lib/jenkins/workspace/nip_regression_nightly/nip_fpga/verification/src/UE/env/top_level/run
[Pipeline] {
[Pipeline] sh
[run] Running shell script
+ source vcs_bash.sh 1
/var/lib/jenkins/workspace/nip_regression_nightly/nip_fpga/verification/src/UE/env/top_level/[email protected]/durable-c40e151e/script.sh: line 2: source: vcs_bash.sh: file not found
Я проверил, что сам vcs_bash.sh существует, но он существует в каталоге .../top_level/run
, а не в каталоге top_level/[email protected]
. Итак, я смущен, как обойти это.
Кроме того, я не понимаю концепцию каталога TMP, что трубопровод создает
Jenkins создаст временный файл, который и в основном скопирует ваше содержимое, а затем выполнит файл, а следовательно, файл '@ tmp'. Может случиться так, что jenkins скажет вам, что файл не найден, когда оболочка по умолчанию в jenkins является bash, но она не установлена на узле (т.е. это узел Windows или контейнер докеров без bash) – Rik
@Rik - я сомневаюсь если это имеет место в вышеупомянутой проблеме. Я буду исполнять команду bash и проверять завтра. Мне любопытно, почему Jenkins создает каталог tmp для выполнения. Я просто хочу, чтобы Дженкинс выполнил свое рабочее пространство. – Sharanbr
О, теперь я вижу. Если вы отправите файл. Разве вы не можете просто выполнить его? – Rik