2016-07-01 12 views
14

Ich mag Gitlab CI mit der .gitlab-ci.yml Datei verwenden, um verschiedene Stufen mit separaten Skripte auszuführen. Die erste Stufe erzeugt ein Werkzeug, das in einem späteren Stadium zur Durchführung von Tests verwendet werden muss. Ich habe das generierte Werkzeug als Artefakt deklariert.Gitlab: Wie kann ich Artefakte zu einer anderen Stufe passieren?

Nun, wie kann ich dieses Werkzeug in einem späteren Stadium Job ausführen? Was ist der richtige Pfad und welche Dateien gibt es in der Umgebung?

Zum Beispiel die erste Stufe baut Artefakte/bin/Testtool/TestTool.exe und das Verzeichnis enthält andere benötigte Dateien (DLLs und andere). Meine .gitlab-ci.yml Datei sieht wie folgt aus:

releasebuild: 
    script: 
    - chcp 65001 
    - build.cmd 
    stage: build 
    artifacts: 
    paths: 
     - artifacts/bin/TestTool/ 

systemtests: 
    script: 
    - chcp 65001 
    - WHAT TO WRITE HERE? 
    stage: test 

Der Build und Tests unter Windows ausgeführt werden, wenn das relevant ist.

Antwort

24

Sie haben die dependencies:

Mit dieser Konfiguration Testphase zu verwenden, werden die untracked Dateien herunterladen, die während der Build-Phase erstellt wurden:

build: 
    stage: build 
    artifacts: 
    untracked: true 
    script: 
    - ./Build.ps1 

test: 
    stage: test 
    dependencies: 
    - build 
    script: 
    - ./Test.ps1 
+0

Ich habe versucht, Hinzufügen von Abhängigkeiten sowohl mit stagename (Build) oder Jobnamen (bauen). passiert in Ihrem Beispiel gleich. aber das hat nicht funktioniert. Es gibt eine Menge Diskussion über die Verwendung von Cache/Artefakten, aber noch kein Glück. @peter – ravikanth

+2

Endlich hat es funktioniert! Der Schlüsselpunkt hier ist Abhängigkeiten sollten zusammen mit Artefakten verwendet werden. Nur die Artefakte, die enthalten waren, wären in der nachfolgenden Stufe für den Verbrauch verfügbar. Unnötig zu sagen, sei vorsichtig, was hochgeladen wird. Ich würde sagen expire_in verwenden. Sonst könnten wir am Ende viel Speicherplatz verschwenden. Diese Artefakte werden im Build Job/Schritt/Schritt nach Gitlab hochgeladen und im Test heruntergeladen. – ravikanth