kann nicht gefunden werden Ich habe meine .gitlab-ci.yml-Datei in den typischen drei Phasen eingerichtet: Test, Build, Deploy. Während der Erstellungsphase führe ich einen Befehl aus, der mein Projekt kompiliert und in einen Tarball legt. Die Build-Phase scheint erfolgreich ausgeführt zu werden, da sie in die Bereitstellungsstufe übergeht. Die Bereitstellungsstufe sagt jedoch, dass sie den Tarball nicht finden kann. Ist es in einem anderen Verzeichnis? Was ist damit passiert? Vielen Dank.Gitlab CI: Ausgabe der Buildstufe
Antwort
Für jeden Test bereinigt gitlab-ci den Build-Ordner, daher sind die Ausgabedateien der Build-Phase in der Bereitstellungsphase nicht verfügbar.
Sie müssen Ihr Projekt auch in der Bereitstellungsphase neu erstellen.
Die "Stufen" sind nur nützlich, um Ihre Tests zu ordnen, d. H. Vermeiden, einen Bereitstellungstest durchzuführen, wenn ein Build-Test fehlgeschlagen ist.
EDIT: Seit Gitlab 8.6 ist es möglich, unter Verwendung von dependencies feature
Ich war überrascht, das gleiche Verhalten zu sehen (auf Gitlab 8.4).
Ich benutze cmake
Makefiles zu erstellen, zu bauen make
dann, und dann make test
den Test auszuführen. Ich führe alle diese in einem Verzeichnis build/
.
Ich möchte mich nicht wiederholen und leicht identifizieren, welche Schritte fehlschlagen. Als solche habe ich verschiedene Gitlab-ci Stufen erstellt: cmake
, make
, test
usw. ich dann Gitlab-ci sagen das build
Verzeichnis mit dem cache
Option zu halten:
cache:
key: "$CI_BUILD_REF_NAME"
untracked: true
paths:
- build/
denke ich, dass die key
Option behält das gleiche Build-Verzeichnis für alle Stufen auf dem gleichen Zweig. Siehe die gitlab-ci doc hier: http://doc.gitlab.com/ce/ci/yaml/README.html#cache
EDIT: Verwenden Sie nicht die cache
dafür! GitLab implementiert wiederverwendbare Artefakte zwischen den Stufen in 8.4: https://gitlab.com/gitlab-org/gitlab-ce/issues/3423 Die CI-Runner müssen angepasst werden, um dies zu unterstützen. Siehe: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/336
Ich kam zurück zu Posten # 3423, aber ich sehe, du hast es schon getan. +1. Es sieht so aus, als ob die Funktion ein paar Mal zurückgesetzt wurde. – sajattack
- 1. Gitlab-CI mit Gitlab-Setup
- 2. Gitlab CI-Runner
- 3. Wordpress CI in Gitlab
- 4. Gitlab und CI-Server
- 5. Wie vergleichen travis-ci und gitlab-ci?
- 6. LWJGL baut mit Gitlab CI
- 7. Ändern Gitlab CI Runner Benutzer
- 8. Global GOPATH in gitlab-ci
- 9. Build Erlang mit gitlab-ci
- 10. Gitlab CI Gradle Abhängigkeits-Cache
- 11. Gitlab CI für Laravel 5. *
- 12. Aktivieren docker für gitlab ci community edition
- 13. So führen Sie Tests automatisch in GitLab CI mit gitlab-ci-multi-runner aus
- 14. apk zum zip hinzufügen Gitlab-CI? Artefakte .gitlab-ci.yml Konfiguration
- 15. Ändern eines Dienstes in GitLab CI
- 16. GitLab-CI Multi-Runner-Start-Docker-Container
- 17. GitLab-CI Multi Runner PHP Composer Cache
- 18. Wie richte ich gitlab CI-Läufer ein?
- 19. Gitlab-CI baut nicht Triggerung auf
- 20. Gitlab - Erstellen von Zusammenführungsanforderungen in CI-Server
- 21. Installieren von Java on online Gitlab ci
- 22. Gitlab CI nicht erkennt Python auf Windows
- 23. GitLab CI Kann PhantomJS nicht installieren/verwenden
- 24. Gitlab CI - Fehler beim Registrieren des Runners
- 25. Gitlab CI Gebäude auf mehreren Läufern
- 26. Generieren Android Build mit Gitlab CI
- 27. Gitlab CI: Kann nicht JAVA_HOME gesetzt
- 28. Gitlab CI wie PHP zu implementieren?
- 29. GitLab CI Job manuell starten (Bereitstellung)
- 30. Gitlab CI aufgrund gem Ladefehler Fehler
Verwandte https://about.gitlab.com/2016/03/10/setting-up-gitlab-ci-for-ios-projects/ Sie können 'Artefakte: Pfade:' erstellen. Das erlaubt später einen Download. – Unapiedra
Ja, ich bin mir ziemlich sicher, dass das hinzugefügt wurde, nachdem ich das gepostet habe. – sajattack