首页 文章

更新package.json时,仅在GitLab CI中使用'npm install'

提问于
浏览
6

我正在将GitLab CI用于项目,该过程的第一步是 npm install . 我稍后会缓存 node_modules 以便更快地运行相同的作业,并将它们定义为构建工件,以便在后续阶段使用它们 . 然而,即使我缓存 node_modules ,它是先进的日期,调用 npm installinstall_packages 作业运行每次都需要很长的时间,因为该命令经过所有 package.json 和检查包的更新等(我认为) .

是否有任何方法 onlyinstall_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 回答

  • 0

    你是否使用--cache选项安装npm?我听过这个问题,人们有几个Gitlab CI跑步者,这是解决方案 .

    希望能帮助到你!

相关问题