0

我有这些工作的管道: 在此处输入图像描述

这是 YAML 文件

stages:
  - info
  - lint
  - migration
  - deploy

system_info:
  stage: info 
  only: 
    - dev
  script:
  - echo $USER 
  - echo $PWD
  - curl ipinfo.io
  allow_failure: true
 
lint:
  stage: lint
  only:
    - dev
  script:
    - npm install
    - npm run lint

migration:
  stage: migration
  only:
    - dev
  script:
    - cat "$OMCONFIG" > "$(pwd)/config/config.json" 
    - cat "$APPLICATION_ENV" > "$(pwd)/.env"
    - npm install
    - npm run db:migrate
  when: manual

deploy-restart: 
  stage: deploy 
  only: 
    - dev
  allow_failure: true
  script:
    - echo $USER
    - echo "Deployment started..."
    - cat "$OMCONFIG" > "$(pwd)/config/config.json" 
    - cat "$APPLICATION_ENV" > "$(pwd)/.env"
    - npm install 
    - echo "restarting server.js..."
    - pm2 restart server.js 

deploy-start:
  stage: deploy 
  only:
    - dev 
  allow_failure: true
  script:
    - echo $USER
    - echo "Deployment started..."
    - cat "$OMCONFIG" > "$(pwd)/config/config.json" 
    - cat "$APPLICATION_ENV" > "$(pwd)/.env"
    - npm install 
    - echo "starting server.js..."
    - pm2 start server.js --name crmBackend

在部署阶段,我将pm2用于节点应用程序。当我用pm2重新启动应用程序时,如果它还没有启动它会抛出一个错误。如果我启动已经启动的应用程序,它会再次引发错误。所以我允许deploy-restart失败,如果失败部署启动将被执行。我需要一个没有失败的解决方案。

4

0 回答 0