首页 > 解决方案 > AWS Codebuild - 可以从 codebuild buildspec 访问最后一个 git commit 消息吗?

问题描述

在我的一些代码管道中,我使用 cypress/mocha/mochawesome-reporter 设置了 E2E 测试,以便在我的代码构建的构建后部分运行测试。然后,我添加了一个 --recursive 行(见下文)将所有报告材料从构建中取出并将它们移动到时间戳中(见:"$(date +"%Y%m%d-%H%M" )") s3 存储桶中的目录。我想知道是否有办法访问最后一条提交消息(可能作为环境变量或其他方式?)并将其添加到我的时间戳目录的名称中。我已经阅读了很多文档,但只看到允许您提取 git ID/Hash 的环境变量。

我知道您可以在代码管道的“源”部分(通过 webhook)中看到最后一条提交消息,所以也许有一种方法可以将该信息传播到构建部分?

更多信息:代码管道由 webhook 触发,看到新的推送到我的仓库。

已阅读文档。尝试在代码构建中添加“printenv”,然后当我看到尾部日志进入时,我没有看到任何可以拉出的提交消息。

 post_build:
    commands:
       - npm run ci
       - aws s3 mv mochawesome-report s3://XXX-BUCKET/reports/XXX-PRODUCT/$(date +"%Y%m%d-%H%M") --recursive

我希望可能有一些可能的方法来提取最后一个 git commit 消息,也许我的代码示例中的最后一行看起来像:

标签: gitamazon-web-servicesgithubaws-codepipelineaws-codebuild

解决方案


脚本https://github.com/thii/aws-codebuild-extras在 CodeBuild 中提供了其他环境变量,包括一个用于 CODEBUILD_GIT_MESSAGE 的环境变量。也许类似的东西会在 CodePipeline 中起作用?


推荐阅读