Как настроить конвейер непрерывного развертывания на AWS для проекта NodeJS? - PullRequest
0 голосов
/ 25 марта 2020

Я использую Elasti c Beanstalk для обслуживания моего приложения NodeJS. Это прекрасно работает, когда я вручную внедряю, генерируя .zip архив исходного кода проекта. Zip-файл буквально содержит:

\dist
server.js
request-map.js
credentials.json

Теперь я пытаюсь настроить конвейер непрерывного развертывания в соответствии с: https://aws.amazon.com/getting-started/tutorials/continuous-deployment-pipeline/. Развертывание прошло успешно, но когда я перехожу к своему приложению, я вижу:

Error: ENOENT: no such file or directory, stat '/var/app/current/dist/wisesheet/index.html'

Учебное пособие не содержит этап сборки, и я думаю, что это проблема - как конвейер узнает, какие артефакты нужно развернуть? Конечно, непосредственно в репо нет папки dist, потому что еще ничего не было построено. Итак, как он может знать, что развертывать после того, как я sh внесу изменения в производственную ветку?

Структура кода хранилища git выглядит следующим образом: enter image description here

1 Ответ

0 голосов
/ 26 марта 2020

Добавьте этап сборки с действием CodeBuild перед действием развертывания.

В сервисе CodeBuild buildspe c - это файл, в котором перечислены команды для построения вашего проекта. Раздел артефактов очень важен, так как упомянутые здесь файлы / папки будут заархивированы и переданы на следующий этап (этап yourdeploy)

версия: 0.2

phases:
  install:
    commands:
      - npm install -g typescript
  build:
    commands:
      - tsc index.ts
artifacts:
  files:
    - index.js

Я нашел этот ресурс, который может оказаться полезным при добавлении этапа сборки:

https://levelup.gitconnected.com/build-test-deploy-node-js-app-with-codecommit-codepipeline-codebuild-elastic-beanstalk-c6d89f971ef2

...