Gitlab ci Skripte während der $? darf nicht Null sein

In unserem Projekt haben wir ein Shell-Skript, das bereitgestellt wird, um Umgebungsvariablen für den nachfolgenden Erstellungsprozess einzurichten oder die erstellten Anwendungen auszuführen.

s enthält einen Block, der die bereits gesetzten Variablen prüft und einige Anpassungen vornimm

# 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

d.h. es prüft, ob ein Pfad zu einer Bibliothek bereits in @ i$LD_LIBRARY_PATH und wenn nicht, fügt es hinzu. (Um fair zu sein, könnte dies anders geschrieben werden(wie hier, aber nehmen Sie an, dass das Skript etwas erreichen soll, was sehr schwer zu tun ist, ohne ein Programm aufzurufe$? und dann entweder eine Sache machen oder eine andere Sache machen.

Das.gitlab-ci.yml dann enthält

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

Aber der Runner beschließt, das Before-Script im selben Moment anzuhalten.$? ist nicht Null, d. h. wenn die if-Anweisung entscheidet, einen Pfad zu @ hinzuzufüg$LD_LIBRARY_PATH. Nun ist es schön, dass der gitlab runner @ prü$? nach jeder Zeile meines Skripts, aber hier wäre es toll, wenn die Zeilen in.gitlab-ci.yml wurden als atomar angesehen.

Gibt es eine Möglichkeit, die Zwischenprüfungen von @ zu vermeide$? in einem Skript, das in @ stam.gitlab-ci.yml?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage