这是 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
失败,如果失败部署启动将被执行。我需要一个没有失败的解决方案。