我正在将GitLab CI用于项目,该过程的第一步是 npm install
. 我稍后会缓存 node_modules
以便更快地运行相同的作业,并将它们定义为构建工件,以便在后续阶段使用它们 . 然而,即使我缓存 node_modules
,它是先进的日期,调用 npm install
的 install_packages
作业运行每次都需要很长的时间,因为该命令经过所有 package.json
和检查包的更新等(我认为) .
是否有任何方法 only 在 install_packages
作业中运行 npm install
取决于某些条件?更具体地说(我认为这是最好的解决方案),自上次构建以来 package.json
是否已被更改?
以下是我的.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...
1 回答
你是否使用--cache选项安装npm?我听过这个问题,人们有几个Gitlab CI跑步者,这是解决方案 .
希望能帮助到你!