如何在 AWS CodeBuild 期间调用 git 命令

How to call git commands during AWS CodeBuild

我需要在我的应用程序中显示“构建版本”。为此,我正在使用 npm 包 'git-describe',它从最后一个 Git 标记获取当前 Git 提交的 'distance'。它在本地工作正常,其中 .git 文件夹与源代码一起可用。但在服务器上,它不起作用可能是因为“.git”文件夹不是已部署代码的一部分。因此,我在 package.json 中添加了一个脚本,用于将 'distance' 写入文件,以便代码稍后可以读取其值以显示在应用程序中。

我假设“.git”文件夹可用于在 CodeBuild 期间执行 git 命令。因此,我将上面的 package.json 脚本添加到 AWS CodeBuild 管道中。但我认为我错了,因为 git 命令似乎在服务器上不起作用。

有人可以建议我如何实现所需的功能吗?

this article from Srđan Milovanović, your AWS codebuidl buildspec.yml 一样,必须包含一个包含您预期信息的变量。

buildspec.yml 可以使用相关 git 命令调用 shell 脚本, 部署代码之前。

使用 AWS CodePipeline + CodeBuild 时,与作为独立服务的 CodeBuild 存在差异。

假设您采用第一种情况,AWS CodePipeline + CodeBuild。为确保 .git 元数据文件夹存在,您需要通过 CodePipeline Source Action 启用 full clone。随后,您需要为您的 CodeBuild 服务角色授予 IAM 权限 codecommit:GitPull(如果使用 CodeCommit),或 codestar-connections:UseConnection(对于其他 SCM 提供商)。

所以对于独立的 CodeBuild 用例。 .git 元数据文件夹应该默认存在,克隆深度在设置期间控制。