Ich begann mit dem GitLab CI mit dem gitlab-ci-multi-runner für Windows (64bit) zu arbeiten. Alles funktioniert soweit, es gibt Verbindungen zu meinen Repositories und meine konfigurierten Jobs werden bei jedem Push gestartet.
Was ich jetzt tun möchte, ist ein Job, der Der erste Job, den ich ausprobiert habe, war: Die ersten beiden Befehle werden ausgeführt, aber der letzte wird komplett ignoriert. Also habe ich versucht, die Jobs zu teilen. Die ersten Befehle erhalten ihren eigenen Job (Reiter "parallel ausführen") und der letzte wurde in den eigenen Job in der Registerkarte "Erfolg ausführen" verschoben. Jetzt werden alle Abhängigkeiten installiert und der zweite Job startet. So weit, so gut, aber der zweite Job beginnt mit dem Entfernen aller zuvor installierten Abhängigkeiten und versucht dann Was ist das Problem hier? Wie kann ich das beheben? Und gibt es eine Möglichkeit, nicht immer alle Abhängigkeiten bei jeder Testausführung herunterzuladen? npm install
ausführt, um alle Abhängigkeiten herunterzuladen, und einen Job, der alle meine Tests mit karma / Jasmine ausführt, indem er karma start karma.conf.js
ausführt oder grunt verwendet und grunt test
. karma start karma.conf.js
auszuführen. Dies führt offensichtlich dazu, dass alle Tests fehlschlagen, weil die npm-Abhängigkeit "angular-mocks" nicht heruntergeladen wurde. Wenn ich npm install
zum zweiten Job hinzufüge (was für mich nicht so viel Sinn macht), wird der Karma-Task wieder ignoriert.
Ich möchte meine endgültige Lösung unten veröffentlichen, um anderen bei diesem Problem zu helfen. Meine .gitlab-ci.yaml -Datei und meine karma.conf.js befinden sich im app-root-Verzeichnis. Für Karma benutze ich PhantomJS , was gut für Windows und auch für meinen Linux-Server funktioniert.
Lösung für Windows:
%Vor%Momentan verwende ich einen Linux-Server zum Testen / Erstellen meiner Apps. Sie müssen den "run" entfernen, damit dies für Linux funktioniert.
Wenn Sie mehr als einen Job haben, können Sie die Befehle zum Installieren von Abhängigkeiten in den Abschnitt "before_script" verschieben, wie es Tamlyn oben beschrieben hat.
Bitte sag mir, ob es immer noch nicht für dich funktioniert. Vielleicht habe ich noch ein paar Ideen ... Ich habe viel daran gearbeitet, damit es funktioniert.
Tags und Links angularjs unit-testing gitlab-ci karma-runner