我有一个管道,它创建对接图像并将其推送到ECR。因为我想使用AWS提供的构建环境,所以我使用了两个构建阶段。
这条管道共有三个阶段。
我想用提交ID (通常是CODEBUILD_RESOLVED_SOURCE_VERSION )标记对接者的图像。但是,我注意到,这个变量仅在我的第二阶段可用,第二阶段紧接源代码之后。
我发现的最坏的情况是将这个变量写入第二阶段的文件中,并将该文件包含在工件中,这是第三阶段的输入。
是否有更好的方法来使用这个在我的第三阶段或整个管道?
发布于 2020-02-06 23:46:27
我设法用jq和海绵做了一些事情,如这个文件buildspec.yaml所示。
我在每次提交时修改我的config.json文件,并将其传递到下一阶段。
发布于 2018-12-11 19:48:03
您能否将提交ID写入位于CodePipeline工件中的WAR文件旁边的文件中?
还有几个相关的想法:
CODEBUILD_RESOLVED_SOURCE_VERSION引用了主要工件。我不知道如何将提交ID概括为第三个操作(发布到ECR),因为扇入(具有不同提交id的多个源)可以在两个CodeBuild操作中发生。发布于 2018-12-10 21:36:14
我使用的是codepipeline + jq的组合。这不是最好的方法,但这是我到目前为止最好的方法。
commit=$(aws codepipeline get-pipeline-state --name PIPELINE_NAME | jq '.stageStates[0].actionStates[0].currentRevision.revisionId' | tr -d '"'))然后用新标签推送对接者图像。您需要首先安装jq,如果您不喜欢jq,可以自己解析响应。
这“可能”是另一个问题的副本
https://stackoverflow.com/questions/53611417
复制相似问题