Ich habe versucht, den Cache von Gitlab Ci für meine Ruby-on-Rails-Anwendung zu nutzen, aber bisher hatte ich noch kein Glück, meine Anwendung verwendet geteilte Läufer, vielleicht ist das das Problem?
Hier sind die Inhalte meiner .gitlab-ci.yml
Wenn meine Tests ausgeführt werden, sehe ich, dass der Runner nach zwischengespeicherten Inhalten sucht, aber er stellt sie nie wieder her:
%Vor%Und wenn der Build kurz vor dem Abschluss steht, sehe ich, dass er versucht, den Cache zu erstellen:
%Vor%Irgendwelche Ideen?
Der Cache hat einige Wochen nachdem ich diese Frage gestellt hatte, richtig angefangen zu arbeiten, es waren keine Änderungen an meiner Konfiguration erforderlich. Ich glaube, es hat mit einem Update gitlab ausgerollt.
Gitlab Runner erstellt standardmäßig den Cache im Git-Arbeitsverzeichnis. Wie Sie bereits erwähnt haben, wird Ihr Cache korrekt erstellt, aber er wird im aktuellen git-Arbeitsverzeichnis von gitlab-runner gespeichert. Wann immer der nächste Build ausgeführt wird, reinigt Gitlab-Runner das Arbeitsverzeichnis (wahrscheinlich mit git clean -dfx), wodurch das Cache-Verzeichnis im Git-Arbeitsverzeichnis entfernt wird.
Sie müssen ein separates Cache-Verzeichnis für gitlab-runner angeben. Sie können dies manuell in der Datei /etc/gitlab-runner/config.toml im Abschnitt [[runners]]
mit dem Einstellungsschlüssel cache_dir
angeben. Erweiterte CI-Konfiguration von Gitlab
Sie können das Cache-Verzeichnis auch während der gitlab-Runner-Registrierung angeben, indem Sie die Option --cache-dir wie in
verwenden %Vor%Hoffe, das hilft
Tags und Links ruby-on-rails bundler gitlab gitlab-ci