2016-11-15 1 views
5

Ich verwende GitLab CI für ein Projekt und der erste Schritt des Prozesses ist npm install. Ich cache node_modules für schnellere Ausführungen des gleichen Jobs später und definiere sie auch als Build-Artefakte, um sie in späteren Phasen zu verwenden. Obwohl ich node_modules cache und es auf dem neuesten Stand ist, dauert der Aufruf von npm install jedes Mal, wenn derJob ausgeführt wird, lange, da der Befehl alle package.json durchläuft und nach Updates von Paketen und solchen prüft (nehme ich an).Nur 'npm install' in GitLab CI, wenn package.json aktualisiert wurde

Gibt es eine Möglichkeit zu nur Laufe npm install im install_packages Job auf einer Bedingung abhängig? Genauer gesagt (was ich denke, wäre die beste Lösung), ob package.json seit dem letzten Build geändert wurde oder nicht?

Unten ist der relevante Teil meiner .gitlab-ci.yml Datei:

image: node:6.9.1 

stages: 
    - install 
    - prepare 
    - deploy 

install_packages: 
    stage: install 
    script: 
    - npm prune 
    - npm install 
    cache: 
    key: ${CI_BUILD_REF_NAME} 
    paths: 
     - node_modules/ 
    artifacts: 
    paths: 
     - node_modules/ 
    only: 
    - master 
    - develop 

build_and_test: 
    stage: prepare 
    script: 
    #do_stuff... 

deploy_production: 
    stage: deploy 
    #do_stuff... 

deploy_staging: 
    stage: deploy 
    #do_stuff... 

Antwort

0

Stehen Sie mit der --cache Option NPM zu installieren? Ich habe dieses Problem mit ein paar Gitlab CI Läufern gehört, die Leute haben und das ist die Lösung die meiste Zeit.

Hoffe es hilft!

+0

Das klingt wie etwas, das den Trick tun würde, aber könnten Sie weiter spezifizieren? Was genau sollte der Befehl sein? 'npm install --cache' existiert meines Wissens nicht. Oder redest du vom [npm Cache] (https://docs.npmjs.com/cli/cache) CLI-Befehl? Ich bin nicht sicher, wie ich das in GitLab CI verwenden würde. – JorJor

+0

@JorJor das habe ich für die Integration von GitLab CI gefunden. Hoffe es hilft – Jaxi

+0

@JorJor https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/97 – Jaxi

Verwandte Themen