У меня есть конвейер с несколькими этапами развертывания (развертывания в разных учетных записях).Я хочу поставить результат утверждения программно.
Проблема возникает, когда параллельно выполняется утверждение более чем одного конвейера.
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
для последнего успешного выполнения или хотя бы список всех выполнений для определенного этапа?