我在 AWS CodeCommit 中托管了一个存储库buildspec.yml
,根目录中有一个存储库,AWS CodeBuild 使用该存储库从源代码构建。
是否可以传入变量/读取源(AWS Pipeline arn?)或类似的东西,以便我可以在 AWS CodeBuild 中确定是进行开发、测试还是产品构建?
如果没有,是否有另一种方法可以在我缺少的 AWS CodePipeline 中完成此任务?
我在 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-文件/
每个阶段以不同的方式命名您的构建规范文件。例如,buildspec_dev.yml、buildspec_qa.yml 等。将它们中的每一个与单独的 CodeBuild 项目相关联。之后,您可以在 CodePipeline 中使用适当的 CodeBuild 项目。
您还可以对 CodePipeline 中的这些不同阶段进行建模。例如,在构建操作中使用基于 buildspec_dev.yml 的项目,然后在测试操作中使用基于 buildspec_qa.yml 的项目。
在 CodeBuild 中,您可以定义在构建期间可以使用的环境变量。因此,您需要为每个环境创建单独的 CodeBuild 项目,并设置正确的环境变量。
如果您也使用 CodePipeline,那么我假设为不同的环境创建了不同的分支。因此,您可以为这些分支上的提交定义一个挂钩,CodePipeline 将调用正确的 CodeBuild 项目。