gitlab-ci.yml nicht, ausführen von shell-Skript
Richte ich gitlab-ci für mein Projekt eingefügt und das folgende yml Skript:
---
buildJob:
only:
- master
script:
- "sh /var/www/gitTestFolder/scripts/build.sh"
stage: build
tags:
- ipsenh
deployJob:
only:
- master
script:
- "sh /var/www/gitTestFolder/scripts/deploy.sh"
stage: deploy
tags:
- ipsenh
testJob:
only:
- master
script:
- "sh /var/www/gitTestFolder/scripts/test.sh"
stage: test
tags:
- ipsenh
stages:
- build
- test
- deploy
Dieses Skript läuft in meinem gitlab-server und zeigt das terminal, sollten die Scripte auszuführen (/var/www..../script.sh)
.
Das folgende Ergebnis ist einer meiner jobs:
gitlab-ci-multi-runner 0.6.2 (3227f0a)
Using Shell executor...
Running on ipsenh...
Cloning repository...
Cloning into 'builds/05d0538a/0/root/ipsenh'...
Checking out 4288f64a as master...
$ sh /var/www/gitTestFolder/scripts/deploy.sh
Build succeeded.
Das Skript jedoch nie ausgeführt. Wenn ich das Skript lokal auf meinem server erstellt er eine Datei mit einfachem text-Ausgabe. Es nie schafft, die Datei über diese Aufgabe jedoch.
- Skript Inhalt:
echo "job executed" >> job.log
Habe ich das falsche setup? Offensichtlich ist es nicht die syntax und die Berechtigungen sind in Ordnung, sonst würde ich ja eine Fehlermeldung erhalten.
Was könnte das sein? Thx!!!
Können Sie die Inhalte des Skripts?
Das Skript erstellt
Das war also das Problem? Sie waren einfach nicht auf der Suche, um die Datei in das richtige Verzeichnis?
Das Skript erstellt
job.log
im aktuellen Verzeichnis. Wenn Sie cd
zuerst, dann das aktuelle Verzeichnis ist dort, wo Sie cd
ed. Wenn Sie es nicht ist, wo Sie sind standardmäßig. So sind Sie wohl einfach nicht auf der Suche nach der Datei in der richtigen Stelle. Verwenden Sie einen vollständigen Pfad für die Ausgabe.Das war also das Problem? Sie waren einfach nicht auf der Suche, um die Datei in das richtige Verzeichnis?
InformationsquelleAutor Randy | 2015-11-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vom aktuellen Verzeichnis ein Skript ist in das Verzeichnis der shell ist, wenn das Skript ausgeführt wird, nicht das Verzeichnis das Skript lebt.
So
echo "job executed" >> job.log
erstellen einerjob.log
- Datei in das aktuelle Verzeichnis der shell-Sitzung und nicht in das Verzeichnis mit den Skript-Datei.Wenn Sie möchten, verwenden Sie die lokale Pfade bedeuten die Skript-Datei im Verzeichnis dann wollen Sie schauen, diese Antwort und Bash-FAQ 028.
InformationsquelleAutor Etan Reisner