当前位置:  开发笔记 > 前端 > 正文

AWS将变量传递到CodePipeline中的buildspec.yml

如何解决《AWS将变量传递到CodePipeline中的buildspec.yml》经验,为你挑选了2个好方法。

我有一个AWS CodePipeline,它在Build Stage中调用CodeBuild.

问题是我如何从CodePipeline中传入一个可以在CodeBuild的buildspec.yml中读取的环境变量?

我知道我可以在CodeBuild中设置环境变量,但是我想为dev,qa和prod环境使用相同的CodeBuild项目.我没有看到如何从CodePipeline传递环境变量,使其一直到buildspec.yml

示例buildspec.yml

version: 0.1

phases:   
  build:
    commands:
      - npm install
      - npm build -- --env ${CURRENT_ENVIRONMENT}

其中CURRENT_ENVIRONMENT将是我在CodePipeline Stage操作中设置的变量.



1> TimB..:

此功能目前无法使用.

解决方法是为具有不同环境变量的每个阶段创建不同的CodeBuild项目.

您可以在此处找到有关在builspec.yml命令中使用环境变量的详细信息:http://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html


整整一年,此功能仍然无法使用?

2> Ashwin Aggar..:

您实际上可以在CodeBuild cloudformation中传递环境变量,如下所示:

Build:
    Type: AWS::CodeBuild::Project
    Properties:
      Name:
        !Sub Build-${AWS::StackName}
      Description: Build your project
      Environment:
        Type: LINUX_CONTAINER
        ComputeType: BUILD_GENERAL1_SMALL
        Image: node8
        EnvironmentVariables:
          - Name: CURRENT_ENVIRONMENT
            Type: PLAINTEXT
            Value: staging

而且buildspec.yml您可以参考这样的环境,

version: 0.2

phases:
  install:
    commands:
      - npm install

  build:
    commands:
      - npm build -- --env ${CURRENT_ENVIRONMENT}

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有