У меня есть труба дженкинсов, которая строит артефакт java, копирует его в каталог и затем пытается выполнить внешний скрипт.Выполнение сценария из трубка jenkins
Я использую этот синтаксис в сценарии трубопровода для выполнения внешнего скрипта
dir('/opt/script-directory') {
sh './run.sh'
}
Скрипт только простой докер сценарий сборки, но сборка не сможет с этим исключением:
java.io.IOException: Failed to mkdirs: /opt/[email protected]/durable-ae56483c
Ошибка запутанна, потому что скрипт не создает никаких каталогов. Он просто создает изображение докеров и помещает только что созданный артефакт java в этом изображении.
Если я создаю другую работу в Дженкинс, который выполняет внешний скрипт как свой единственный шаг сборки и затем вызвать эту работу из моего сценария трубопровода, используя следующий синтаксис:
build 'docker test build'
все отлично работает, скрипт выполняет в рамках другого задания и трубопровода продолжается, как ожидалось.
Это единственный способ выполнить скрипт, который является внешним для рабочей области?
Что я делаю неправильно с моей попыткой выполнить скрипт изнутри сценарий конвейера?
реж ('/ TMP') { ш '/opt/script-directory/run.sh' } --- это работает? – Jayan
Это не скрипт, создающий файлы. (Я думаю) Дженкинс хранит информацию о восстановлении здесь – Jayan
да, я не уверен, что он делает вообще. Я сменил скрипт на простое эхо, и он терпит неудачу с той же ошибкой. – Bltucker