Недавно я попытался использовать AWS CodeDeploy для автоматизации развертывания своего кода из GitHub в AWS. Поскольку мой проект представляет собой машинописное приложение Nodejs, мне нужно было написать инструкции по сборке, чтобы сообщить AWS, как преобразовать мой код из машинописного текста в javascript. Потому что это был мой первый раз, когда я пытался найти выход из ситуации в Google, как всегда, но не смог найти конкретного материала о том, как написать файл Buildspec.yml. Вот я и подумал, почему бы просто не написать?

Что такое файл Buildspec.yml?

Это просто файл, содержащий инструкции по сборке для codeBuild.

Куда его поместить?

Чтобы он работал, он должен находиться в корне папки вашего проекта.

Вот пример

version: 0.2
phases:
  install:
    runtime-versions:
      nodejs: 16
    commands:
      - npm install -g typescript
      - npm install
  pre_build:
    commands:
      - echo Installing source NPM dependencies...
  build:
    commands:
      - echo Build started on `date`
      - tsc
      - npm prune --production
    post_build:
      commands:
        - echo Build completed on `date`  
artifacts:
  type: zip
  files:
    - package.json
    - package-lock.json
    - "build/**/*"
    - .ebextensions/**/*

Версия: это версия спецификации сборки, 0,1 или 0,2 (рекомендуется). Это влияет на оболочку по умолчанию в среде сборки. 0.1 запускает каждую команду сборки в другом экземпляре, а 0.2 запускает все команды сборки в одном экземпляре.

Фазы.Это команды, которые выполняются на каждом этапе сборки в определенном порядке. Порядок такой: Install, pre_build, build и post_build.

Install: This is for installing packages in the build enviroment.
pre_build: Are commands that runs before the build.
build: Are commands that runs during the build. 
post_build: Are commands that runs after the build 

Артефакты.Здесь мы можем найти выходные данные нашей сборки, и они будут развернуты в AWS.

Заключение

Я надеюсь, что вы найдете эту статью полезной.

Похлопайте ему, чтобы другие тоже его нашли! Не забудьте подписаться на меня на Medium, чтобы ничего не пропустить. Также давайте дружить на Linkedin.