如何使用 AWS CodeBuild 构建 Dev/Test/Prod

How to build to Dev/Test/Prod with AWS CodeBuild

我有一个存储库托管在 AWS CodeCommit 中,根目录中有一个 buildspec.yml,AWS CodeBuild 使用它从源构建。

是否可以传入变量/读取源代码(AWS Pipeline arn?)或类似的东西,以便我可以在 AWS CodeBuild 中确定是进行开发、测试还是生产构建?

如果没有,是否有另一种方法可以在我缺少的 AWS CodePipeline 中完成此操作?

AWS CodeBuild 支持备用构建规范文件。可在此 AWS 博客中找到示例:https://aws.amazon.com/blogs/devops/create-multiple-builds-from-the-same-source-using-different-aws-codebuild-build-specification-files/

每个阶段以不同的方式命名您的构建规范文件。例如,buildspec_dev.yml、buildspec_qa.yml 等。将其中的每一个与单独的 CodeBuild 项目相关联。之后,您可以在 CodePipeline 中使用适当的 CodeBuild 项目。

您还可以在 CodePipeline 中为这些不同的阶段建模。例如,在构建操作中使用基于 buildspec_dev.yml 的项目,然后在测试操作中使用基于 buildspec_qa.yml 的项目。

在 CodeBuild 中,您可以定义在构建过程中可以使用的环境变量。所以你需要为每个环境创建单独的CodeBuild项目,并设置正确的环境变量。

如果您也使用 CodePipeline,那么我假设为不同的环境创建了不同的分支。因此,您可以为这些分支上的提交定义一个钩子,CodePipeline 将调用正确的 CodeBuild 项目。