Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gitlab CI节点_模块问题_Gitlab_Gitlab Ci - Fatal编程技术网

Gitlab CI节点_模块问题

Gitlab CI节点_模块问题,gitlab,gitlab-ci,Gitlab,Gitlab Ci,我有两个管道和两个作业,一个作业是安装我的npm包,另一个是捆绑和部署。当我合并请求时,我有一个管道在主机上运行,另一个管道是通过Webhook触发的。我的合并请求可以正常工作,但webhook不能,我注意到以下区别: 在我的合并请求中,我的npm包正在安装并查找所有必需的包/文件,但在我的webhook触发器中,即使它使用相同的提交和分支,它似乎也没有安装所有的包 即使它们在同一个分支中并使用相同的提交,但一个是合并请求,而另一个是管道触发器,这种情况还会发生吗?我有什么遗漏吗?谢谢 下面

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

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

即使它们在同一个分支中并使用相同的提交,但一个是合并请求,而另一个是管道触发器,这种情况还会发生吗?我有什么遗漏吗?谢谢

下面是失败的工作

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安装中,对于第一种情况,它似乎没有安装我的所有软件包。提前感谢您的帮助

我明白了,主要问题是在devdependences中设置的某些包中

  • 我们的登台环境工作正常,因为节点_ENV未设置为生产
  • 我们在两个作业中设置的主环境正在工作,因为我们实际上是在npm安装之后(在第二个作业中)设置节点_ENV。在另一个作业中,节点_ENV在npm安装之前设置,而节点_ENV=生产npm安装未安装devdependences
  • 修复方法是将devDependencies所需的包添加为依赖项

  • 我发现,主要问题是在devdependences中设置的某些包中

  • 我们的登台环境工作正常,因为节点_ENV未设置为生产
  • 我们在两个作业中设置的主环境正在工作,因为我们实际上是在npm安装之后(在第二个作业中)设置节点_ENV。在另一个作业中,节点_ENV在npm安装之前设置,而节点_ENV=生产npm安装未安装devdependences
  • 修复方法是将devDependencies所需的包添加为依赖项

  • 还有一种可能您没有提到,如果没有package-lock.json和clean安装(
    npm ci
    ),缓存文件的数量将不一致。还有一种可能您没有提到,如果没有package-lock.json和clean安装,缓存文件的数量将不一致(
    npm ci
    )。