AWS Codepipeline выполняет codebuild + codedeploy, если выдается сообщение о коммите - PullRequest
0 голосов
/ 27 февраля 2020

Я работаю с GitHub-репозиторием, разделенным на 3 части (все в одном репо): Frontend, Backend и Infastructure. Я подключил AWS Codepipeline к Webhook. Проблема в том, что у меня есть отдельные CodeBuild & CodeDeploy для всех 3 частей проекта (Frontend, backend и Infastrukture), и не всегда должны выполняться все CodeBuild & CodeDeploy (возможно, только изменения были внесены в Frontend).

I хочу контролировать выполнение с помощью определенных сообщений Commit.

Я обнаружил, что можно получить сообщение commit с помощью buildspe c. Источник: https://github.com/thii/aws-codebuild-extras

 phases:
  install:
    commands:
      - echo Installing codebuild-extras...
      - curl -fsSL https://raw.githubusercontent.com/thii/aws-codebuild-extras/master/install >> extras.sh
      - . ./extras.sh

И вы можете проверить условия в buildspe c. Источник: https://github.com/aws-samples/aws-codebuild-multiple-buildspec/issues/2

   build:
     commands:
       - echo "${CODEBUILD_BUILD_ARN}"
       - |
         if expr "${CODEBUILD_BUILD_ARN}" : ".*build/MyProjectDev-" >/dev/null; then
           yarn run build-dev;
         fi
       - |
         if expr "${CODEBUILD_BUILD_ARN}" : ".*build/MyProject-" >/dev/null; then
           yarn run build-prod;
         fi

Я мог бы проверить, содержит ли сообщение о фиксации определенную строку или нет, и просто выйти из сборки кода. Все развертывания кода по-прежнему будут выполняться - и, вероятно, произойдет ошибка, потому что кодовая сборка не предоставляет никаких артефактов.

Идея, позволяющая обойти эту проблему, заключается в использовании AWS Lambda. И отключить автоматические переходы

  • Источник -> CodeBuild (получить CommitMessage) -> Лямбда (разбирать сообщения и вызывать сборки)
    1. CodeBuild -> CodeDeploy (Frontend)
    2. CodeBuild -> CodeDeploy (Backend)
    3. CodeBuild -> CodeDeploy (Infrastruktur)

Это кажется мне очень сложным, и я не уверен, что это даже возможно (Lambda вызывает Codebuild & CodeDeploy) отключить все другие переходы после aws lambda и в конечном итоге выполнить codebuild & codedeploy

любые мысли

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...