Здравствуйте! Подскажите, пожалуйста, как правильно деплоить node.js приложение через bitbucket pipeline?
У меня есть вот такой yml
image: node:10.15.3
pipelines:
custom: # Pipelines that are triggered manually
deployment-to-production-init:
- step:
caches:
- node
script: # Modify the commands below to build your repository.
- npm install
- npm rebuild node-sass --force
- apt-get update
- apt-get -qq install git-ftp
- echo "'_$(git status -uno --porcelain | wc -l)_'"
- git status -uno --porcelain
- echo "Initiating Push site:Source"
- git ftp init --user $FTP_LOGIN --passwd $FTP_PASSWORD ftp://$FTP_HOST/public_html/
deployment-to-production:
- step:
caches:
- node
script: # Modify the commands below to build your repository.
- npm install
- npm rebuild node-sass --force
- apt-get update
- apt-get -qq install git-ftp
- echo "'_$(git status -uno --porcelain | wc -l)_'"
- git status -uno --porcelain
- echo "Initiating Push site:Source"
- git ftp push --user $FTP_LOGIN --passwd $FTP_PASSWORD ftp://$FTP_HOST/public_html/
branches: # Pipelines that run automatically on a commit to a branch
master:
- step:
caches:
- node
script:
- apt-get update
- npm install
- npm rebuild node-sass --force
- git ftp push --user $FTP_LOGIN --passwd $FTP_PASSWORD ftp://$FTP_HOST/public_html/
- /bin/bash start_server.sh
и bash-скрипт:
#!/usr/bin/env bash
npm install
export NODE_ENV=production
forever server.js
Идея в том, чтобы не заливать каждый раз папку node_modules, а устанавливать зависимости уже на сервере. Но почему-то проблема в том, что при выполнении start_server.sh - node_modules на фтп не устанавливаются, хотя в битбакетовской консоли скрипт вроде как запускается
+ /bin/bash start_server.sh
npm WARN expressapp@1.0.0 No repository field.
npm WARN expressapp@1.0.0 No license field.
audited 128 packages in 0.878s
found 0 vulnerabilities