2016-11-15 17 views
5

Używam GitLab CI dla projektu, a pierwszym krokiem procesu jest npm install. I cache node_modules dla szybszych uruchomień tego samego zadania później, a także zdefiniować je jako artefakty kompilacji w celu ich użycia w późniejszych etapach. Jednak mimo że buforowałem node_modules i jest on aktualny, wywołanie npm install za każdym razem, gdy uruchamiane jest zadanie install_packages, zajmuje dużo czasu, ponieważ polecenie przechodzi przez wszystkie package.json i sprawdza aktualizacje pakietów i takie (zakładam).Tylko "npm install" w GitLab CI, gdy pakiet.json został zaktualizowany

Czy istnieje jakiś sposób, aby tylko run npm install w pracy install_packages zależności od jakiejś choroby? Dokładniej (co moim zdaniem byłoby najlepszym rozwiązaniem), czy zmieniono package.json od czasu ostatniej kompilacji?

Poniżej znajduje się odpowiednia część mojego pliku .gitlab-ci.yml:

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... 

Odpowiedz

0

Czy NPM instalacji z opcją --cache? Słyszałem o tym problemie z kilkoma biegaczami Gitlab CI, których ludzie mają i to jest rozwiązanie przez większość czasu.

Mam nadzieję, że pomoże!

+0

To brzmi jak coś, co mogłoby załatwić sprawę, ale czy mógłbyś podać dalej? Czym dokładnie powinno być polecenie? 'npm install --cache' nie istnieje według mojej wiedzy. A może chodzi o polecenie cli [npm cache] (https://docs.npmjs.com/cli/cache)? Nie jestem pewien, w jaki sposób chciałbym użyć tego w GitLab CI. – JorJor

+0

@JorJor jest to, co znalazłem dla integracji GitLab CI. Mam nadzieję, że pomaga – Jaxi

+0

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

Powiązane problemy