【问题标题】:Only 'npm install' in GitLab CI when package.json has been updated更新 package.json 后,GitLab CI 中只有“npm install”
【发布时间】:2017-03-29 16:07:06
【问题描述】:

我正在将 GitLab CI 用于一个项目,该过程的第一步是 npm install。我缓存node_modules 以便稍后更快地运行相同的作业,并将它们定义为构建工件以便在以后的阶段使用它们。但是,即使我缓存 node_modules 并且它是最新的,每次运行 install_packages 作业时调用 npm install 也需要很长时间,因为该命令会遍历所有 package.json 并检查更新包之类的(我假设)。

有没有办法根据某些条件在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...

【问题讨论】:

    标签: node.js npm gitlab npm-install gitlab-ci


    【解决方案1】:

    只需使用only:changes 标志doc

    工作将是:

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

    还有一点是:你设置缓存的方式正确吗? 读这个: https://docs.gitlab.com/runner/configuration/autoscale.html#distributed-runners-caching https://docs.gitlab.com/ee/ci/caching/

    【讨论】:

      【解决方案2】:

      您是否使用 --cache 选项安装 npm?我听说过人们拥有的几个 Gitlab CI 运行器存在这个问题,这是大多数时候的解决方案。

      希望对你有帮助!

      【讨论】:

      • 这听起来可以解决问题,但您能进一步说明吗?该命令究竟应该是什么? npm install --cache 据我所知不存在。还是您在谈论npm cache cli 命令?我不确定如何在 GitLab CI 中使用它。
      • @JorJor 这是我为 GitLab CI 集成找到的。希望对你有帮助
      猜你喜欢
      • 1970-01-01
      • 2016-10-02
      • 2021-08-04
      • 2015-07-16
      • 2018-03-30
      • 1970-01-01
      • 2019-01-23
      • 2022-06-20
      • 1970-01-01
      相关资源
      最近更新 更多