我有40多个管道需要从开发人员批准到质量检查,然后再由质量检查批准到阶段。我正在使用AWS CLI命令执行脚本。我已经能够对单个管道执行此操作,因为我知道特定的管道已准备好被批准。
aws codepipeline put-approval-result --cli-input-json file://TestPipeline.json
这是我如何收集信息以批准单个管道
aws codepipeline get-pipeline-state --name Pipeline-Ready-for-Approval
我要寻找的是-有没有一种方法可以使用get-pipeline-state
遍历所有管道并标识阶段名称和操作名称,而无需手动遍历每个管道的输出。 / p>
我可以尝试从aws codepipeline list-pipelines
获取管道名称,以使列表循环通过。
是否可以同时使用bash脚本,awscli和jq?
谢谢
答案 0 :(得分:0)
您可以使用以下方法获得大部分的信息
pipelines=$(aws codepipeline list-pipelines --query 'pipelines[].name' --output text)
for p in pipelines; do
aws codepipeline get-pipeline-state \
--name $p \
--query 'stageStates[?latestExecution.status==`InProgress`].{stageName:stageName,actionName:actionStates[0].actionName,token:actionStates[0].latestExecution.token}'
done
这假定批准动作在阶段中以 first 或 only 动作存在。
您将获得put-approval-result
命令所需的输出