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...
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
@JorJor jest to, co znalazłem dla integracji GitLab CI. Mam nadzieję, że pomaga – Jaxi
@JorJor https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/97 – Jaxi