У меня есть конвейер с несколькими этапами развертывания (развертывания в разных учетных записях). Хочу программно поставить результат утверждения.
Проблема возникает, когда есть более одного конвейера, ожидающего утверждения параллельно.
source (Succeeded, commit 3)
↓
build (Succeeded, commit 3)
↓
deploy-dev (Succeeded, commit 3)
↓
approve-to-deploy-to-qa (InProgress, commit 3)
deploy-qa
↓
approve-to-deploy-to-prod (InProgress, commit 1)
deploy-prod (not run yet)
Пример на картинке: три фиксации были выполнены, все выполняются до dev
(включительно), только commit 2
прошла через qa
, и этап теперь ожидает следующей фиксации (commit 3
). Этап prod
еще не был запущен и все еще ожидает утверждения самого первого коммита (commit 1
).
Чтобы утвердить последний этап (prod
) программно, я должен утвердить все коммиты до последнего успешного коммита с предыдущего этапа (qa
).
Вызывая codepipeline.getPipelineState
из AWS JavaScript SDK, я получаю только текущие состояния:
{ "pipelineName": "...",
"stageStates": [
...
{ "stageName": "StagingQA",
"inboundTransitionState": {
"enabled": true
},
"actionStates": [{
"actionName": "approval",
"latestExecution": {
"status": "InProgress",
"token": "1d55d6a2-68bb-4e01-83cc-b46101857088"
}
}, {
"actionName": "stage-qa",
"entityUrl": "..."
}
],
"latestExecution": {
"pipelineExecutionId": "d519482d-5a9a-4a6d-b185-3bc3fd5f98e2",
"status": "InProgress"
}
}, {
"stageName": "StagingProd",
"actionStates": [{
"actionName": "approval",
"latestExecution": {
"status": "InProgress",
"token": "70b5ef16-a912-4b12-a660-be0792a8a70d"
}
}, {
"actionName": "stage-prod",
"entityUrl": "..."
}
],
"latestExecution": {
"pipelineExecutionId": "04b8b2c4-e677-4d1e-a601-f731260ef00a",
"status": "InProgress"
}
}
]
}
Есть ли способ получить pipelineExecutionId
для последнего успешного выполнения или хотя бы список всех выполнений для определенного этапа?
listPipelineExecutions
возвращает выполнение только для самого конвейера, аgetPipelineState
только текущий статус - фактически уже упоминается в вопросе. - person ttulka   schedule 12.02.2019getPipelineState
упоминается массивstageStates
в возвращаемом объекте, который представляет собой список выходной информации этапа конвейера, включая имя этапа, состояние, самые последние сведения о запуске, отключен ли этап, и другие данные. поэтому я подумал, что это все. - person Milan Cermak   schedule 12.02.2019