Развертывание приложения node / express в DigitalOcean Droplet через CircleCI

#node.js #continuous-integration #yaml #digital-ocean #circleci

#node.js #непрерывная интеграция #yaml #цифровой океан #circleci

Вопрос:

Я хотел бы развернуть свое приложение MERN stack в DigitalOcean Droplet через CircleCI в качестве инструмента CI / CD. Я читал, что ему нужны ssh команды Droplet и run для создания и развертывания приложения, но я попробовал несколько способов добиться этого, но все равно не повезло.

Ниже приведен мой config.yml вариант CircleCI

 version: 2.1
orbs:
  node: circleci/node@4.1.0
jobs:
  express_deploy:
    docker:
      - image: "cimg/node:current"
    steps:
      - run: node --version
      - add_ssh_keys:
          fingerprints:
            - "$ssh_key_prints"
      - run: ssh -oStrictHostKeyChecking=no $username@$ip "cd $directory  npm install  node app.js"
workflows:
  init:
    jobs:
      - express_deploy
  

ошибка: bash: line 0: cd: too many arguments

Некоторые из других попыток, которые я пробовал:

 steps:
      - run: node --version
      - add_ssh_keys:
          fingerprints:
            - "$ssh_key_prints"
      - run: ssh -oStrictHostKeyChecking=no $username@$ip "cd $directory"
      - run: npm install
      - run: node app.js"
  

ошибка: module $directory/app.js not found

Я хочу знать, является ли этот подход неправильным или есть способ это исправить?

примечания: $ это переменные учетных данных, которые я здесь размыл, но я протестировал их независимо, и они работали нормально

Комментарии:

1. Нужно ли настраивать целевой сервер где-то еще в конфигурации проекта, но не в yml файле?