如何在 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
元数据文件夹应该默认存在,克隆深度在设置期间控制。
我需要在我的应用程序中显示“构建版本”。为此,我正在使用 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
元数据文件夹应该默认存在,克隆深度在设置期间控制。