gitlab ci скрипты, во время которых $? разрешено быть ненулевым

В нашем проекте у нас есть сценарий оболочки, который должен быть создан для установки переменных среды для последующего процесса сборки или для запуска собранных приложений.

Он содержит блок, который проверяет уже установленные переменные и выполняет некоторые настройки.

# part of setup.sh
for LIBRARY in "${LIBRARIES_WE_NEED[@]}"
do
  echo $LD_LIBRARY_PATH | \grep $LIBRARY > /dev/null
  if [ $? -ne 0 ]
  then
   echo Adding $LIBRARY
   LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LIBRARY
  else
   echo Not adding $LIBRARY
  fi
done

то есть он проверяет, существует ли путь к библиотеке$LD_LIBRARY_PATH и если нет, добавляет это. (Чтобы быть справедливым, это может быть написано по-другому(как здесь), но предположим, что скрипт должен достичь чего-то, что очень сложно сделать без вызова программы, проверки$? а потом либо делать одно, либо делать другое).

.gitlab-ci.yml затем содержит

before_script:
  - yum install -y <various packages>
  - source setup.sh

но бегун решает остановить сценарий до того момента$? ненулевой, то есть когда оператор if решает добавить путь к$LD_LIBRARY_PATH, Теперь хорошо, что бегун gitlab проверяет$? после каждой строки моего сценария, но здесь было бы здорово, если бы строки в.gitlab-ci.yml считались атомными.

Есть ли способ избежать промежуточных проверок$? в сценарии, который получен в.gitlab-ci.yml?

Ответы на вопрос(1)

Ваш ответ на вопрос