Gitlab CI node_modules问题

问题描述 投票:1回答:1

我有两个带有两个作业的管道,一个作业是安装我的npm软件包,另一个是捆绑和部署。当我合并请求时,我有一个在主服务器上运行的管道,而另一个通过webhooks触发的管道在运行。我的合并请求可以正常工作,但webhook不能,并且我注意到以下区别:

在合并请求中,我的npm软件包正在安装并找到所有必需的软件包/文件,但是在我的webhook触发器中,即使它使用相同的提交和分支,它似乎也没有安装所有软件包。

Image with all packages

Image where it seems it’s not installing the same number of packages

即使它们在同一个分支中并且使用相同的提交,但有一个原因是合并请求,而另一个是管道触发器,有没有这样的原因呢?我有什么想念的吗?谢谢。

下面是失败的作业

production_publish:
  stage: publish
  before_script:
    - npm config set registry https://npm.ef.com/
    - npm config set //npm.ef.com/:_authToken ${EF_NPM_TOKEN}
  script:
    - npm install
    - npm run bundle
    - node ./devops/deployStatic
  only:
    refs:
      - pipelines
      - master
    variables:
      - $NODE_ENV == "production"
  except:
    refs:
      - staging
      - pushes
      - merge_requests
  tags:
    - storyblok
    - prod

下面是工作正常的工作

install:
  stage: install
  script:
    - npm config set registry https://npm.ef.com/
    - npm config set //npm.ef.com/:_authToken ${EF_NPM_TOKEN}
    - npm install
  cache:
    key: ${CI_COMMIT_REF_NAME}-${CI_JOB_NAME}
    paths:
      - node_modules/
  artifacts:
    paths:
      - node_modules/
    expire_in: 1 mos
  only:
    refs:
      - master
  except:
    refs:
      - triggers
      - staging
  tags:
    - storyblok
    - prod

e1_id_production_deploy_next_server:
  stage: deploy
  before_script:
    - export COMMIT_TIME=$(git show -s --format=%ct $CI_COMMIT_SHA)
    - export COMMIT_TAG=$(git show -s --format=%H $CI_COMMIT_TAG)
    - export PRODUCT=$(echo $CI_JOB_NAME | cut -d '_' -f 1)
    - export REGION=$(echo $CI_JOB_NAME | cut -d '_' -f 2)
    - export NODE_ENV=$(echo $CI_JOB_NAME | cut -d '_' -f 3)
    - apt-get update && apt-get install -y zip
  script:
    - npm run build
    - zip ./builds/server_build_$COMMIT_TAG.zip -rq * .[^.]* .next/\* -x out/\* -x .git/\*
    - node ./devops/deployServer
  only:
    refs:
      - master
  except:
    - triggers
  tags:
    - storyblok
    - prod
  dependencies:
    - install

主要问题再次出现在两种情况下的npm安装中,对于第一种情况,似乎并没有安装我的所有软件包。提前感谢您的帮助

gitlab gitlab-ci
1个回答
0
投票

我知道了,主要问题是在devDependencies中设置了某些软件包。

  1. 我们的暂存环境运行良好,因为未将NODE_ENV设置为正式生产
  2. 我们在2个作业中设置的主环境正在工作,因为我们实际上是在npm安装之后(在第二个作业中)设置了NODE_ENV。在另一个作业中,在npm安装之前设置了NODE_ENV,并且当NODE_ENV = production npm install不安装devDependencies时,设置了NODE_ENV。
  3. 修复是将devDependencies所需的软件包添加为依赖项
© www.soinside.com 2019 - 2024. All rights reserved.