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

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

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

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

回答1

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

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

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

回答2

https://www.linkedin.com/in/srdjanmilovanovic/https://medium.com/maestral-solutions/create-git-tags-in-the-form-of-semantic-build-numbers-using-aws-codebuild-and-aws-codepipeline-e52210d719df 一样,您的 https://buildspec.yml 必须包含一个带有您预期信息的变量。

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

相似文章

git - Git rebase 无效上游“开发”的问题

我有一种情况,我在3个月前从开发中创建了一个特性分支,从那时起,其他同事一直在研究其他发布到开发中的特性分支。我现在想将我的更改也集成到开发中,而不会破坏他们的代码,也不会破坏我的代码。我对此进行了研...

随机推荐

最新文章