Есть ли способ записать состояние проверки git обратно в git при сбое в конвейере awscode? - PullRequest
0 голосов
/ 25 октября 2019

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

Ранее я использовал для этого инструмент сборки под названием Codeship, в котором есть приложение git-hub. Сейчас я прошел через git-hub API https://developer.github.com/v3/checks/runs/#create-a-check-run Но не уверен, с чего начать.

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

Я сделал следующее, чтобы записать статус в gitrepo:

Я использовал gitstatus api: https://developer.github.com/v3/repos/statuses/ Написал лямбда-функцию для выполнения запроса POST с состоянием этих данных, TargetURL, context

{"state": "success", "target_url": "https://example.com/build/status" (URL инструмента сборки, например, codebuild или jenkins)" description ":" Сборка завершилась успешно! "," context":" непрерывная интеграция / jenkins "}

ответ здесь должен быть" url ":" https://api.github.com/repos//-/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e ",

Все эти подробности можно получить, используя событие CLoudwatch дляконвейер. с помощью шаблонов подробного списка событий: event.detail.state; event.detail.pipeline; event.region, event ['detail'] ['execute-id'], data.pipelineExecution.artifactRevisions [0]. revisionUrl

Приветствия.

0 голосов
/ 28 октября 2019

Чтобы отправить уведомление в случае сбоя этапа, выполните следующие действия:

  1. На основе событий Cloudwatch, генерируемых CodePipeline [0], запустите лямбда-функцию [1].

  2. Лямбда-функция может инициировать вызов API «list-pipe-executeings» [2], из которого можно извлечь все необходимые значения, такие как Commit Id, сообщение о состоянии и т. Д. [3].

  3. После получения значений вы можете отправить то же значение в SNS, написав код лямбда-функции внутри той же лямбды. В следующих блогах показано, как публиковать в SNS с помощью лямбды [4] [5].

[0] https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-cloudwatch-sns-notifications.html

[1] https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/RunLambdaSchedule.html

[2] https://docs.aws.amazon.com/cli/latest/reference/codepipeline/list-pipeline-executions.html

[3] https://docs.aws.amazon.com/cli/latest/reference/codepipeline/index.html

[4] https://gist.github.com/jeremypruitt/ab70d78b815eae84e037

[5] Можете ли вы опубликовать сообщениев тему SNS с использованием лямбда-функции AWS, поддерживаемой node.js?

...