gitlab-ci window下构建Nodejs程序,会跳过npm install后面的其他脚本

背景

最近在处理一个nodejs的构建程序,因为需要打包为win可执行程序,并且有现成的ci工具可以用,就找了一个window机子作为gitlab-runner注册到gitlab服务器上,本地利用node npm 安装包,起服务测试都没问题,但是在gitlab-ci服务器上运行的时候,就出问题了。每次ci运行到一半,就结束了。附件还无法上传,这是这次的问题

问题解决办法

原始的CI配置文件

image: 130.10.8.208:8889/node

variables:
  CI_DEBUG_TRACE: "true"

stages:
  - build
  - buildexe

# 前端页面打包
fed_build:
  stage: build
  script:
    - mkdir build
    - npm config set registry http://130.10.8.208/repository/bksx-npm
    - npm config set sass-binary-site http://130.10.8.208/repository/node-sass
    - npm config set phantomjs_cdnurl http://130.10.8.208/repository/phantomjs
    - npm config list && npm install && npm run pro
    - mkdir -p product/app
    - mv build/* ./product/app
    - cp server.config.js ./product/app
    - cp soft/run.js ./product/app
    - cp soft/package.json ./product/app
    - cp soft/install/* ./product/install
    - cd product/app
    - npm install
  only:
    refs:
      - dev
  artifacts:
    paths:
      - product/

# 打包可执行.exe文件
buildexe:
  stage: buildexe
  script:
    - chcp 65001
    - whoami
    - copy server.config.js package
    - cd package
    - npm install
    - npm run package
    - cd zzzwwwzhzx
    - npm install
    - grunt
  only:
    refs:
      - dev
  tags:
    - zyy
  artifacts:
    paths:
      - package/zzzwwwzhzx/installer

后来在gitlab 官方网站发现类似的问题 ,如下所示,他们把shell=cmd这个默认值改为shell=powershell,这种方式,我们试了,并不是很好用,再找

后来发现另一个文章中的办法, 文章中提到,在window下,默认是无法批量执行脚本的。如果需要执行的话,需要在执行命令前加call 即可,修改后的内容地

image: 130.10.8.208:8889/node

variables:
  CI_DEBUG_TRACE: "true"

stages:
  - build
  - buildexe

# 前端页面打包
fed_build:
  stage: build
  script:
    - mkdir build
    - npm config set registry http://130.10.8.208/repository/bksx-npm
    - npm config set sass-binary-site http://130.10.8.208/repository/node-sass
    - npm config set phantomjs_cdnurl http://130.10.8.208/repository/phantomjs
    - npm config list && npm install && npm run pro
    - mkdir -p product/app
    - mv build/* ./product/app
    - cp server.config.js ./product/app
    - cp soft/run.js ./product/app
    - cp soft/package.json ./product/app
    - cp soft/install/* ./product/install
    - cd product/app
    - npm install
  only:
    refs:
      - dev
  artifacts:
    paths:
      - product/

# 打包可执行.exe文件
buildexe:
  stage: buildexe
  script:
    - chcp 65001
    - whoami
    - copy server.config.js package
    - cd package
    - call npm install
    - call npm run package
    - cd bjswwwzhzx
    - call npm install
    - call grunt
  only:
    refs:
      - dev
  tags:
    - zyy
  artifacts:
    paths:
      - package/bjswwwzhzx/installer

问题解决

你可能感兴趣的:(gitlab,gitlab-ci,nodejs,做技术的,小笔记,js,Window)