我正在通过Bitbucket通过PR提交触发AWS CodePipeline。有什么方法可以找到哪些文件是用最新提交更新/创建的吗?
我查看了环境变量,并查看了管道的详细信息和历史CLI命令:$ aws codepipeline list-pipeline-executions --pipeline-name <name>
和$ aws codepipeline get-pipeline-state --name <name>
,但他们没有我需要的信息。
为什么我需要这个?管道触发一个或多个气流DAG并侦听其状态。我们在分支名称中包含DAG名称,使用CODEBUILD_WEBHOOK_HEAD_REF对其进行解析,然后触发DAG。这很容易出错,由于DAG名称与其文件名匹配,我们希望自动提取它们。
这是可行的吗?谢谢你的帮助!
您可以从管道执行中获取提交哈希。使用cli:时
aws codepipeline list-pipeline-executions --pipeline-name <pipeline-name>
你会得到一个执行列表,第一次执行是最新的一次。
pipelineExecutionSummaries: [
{ ...
sourceRevisions: [
{
...
revisionId: "<commit-hash>"
}
]
}
...
]
然后,当你有了提交散列,你就可以得到在提交中修改的文件
git diff-tree --stat <commit-hash>
进一步的逻辑取决于您的应用程序,当您得到修改的文件时,您可以处理。