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
?