Node.js 如何更改“中的命令”;建筑规范yaml“;根据我的“文件”;“分行”;

Node.js 如何更改“中的命令”;建筑规范yaml“;根据我的“文件”;“分行”;,node.js,amazon-web-services,amazon-s3,yaml,aws-codepipeline,Node.js,Amazon Web Services,Amazon S3,Yaml,Aws Codepipeline,我的项目中有一个“buildspec.yaml”文件。当我在“开发”分支时,他会发出一个命令来发送给定s3中的文件,但当我“推”我的“主”分支时,它必须发送到另一个s3,有没有任何方法可以在文件上设置一个条件,而不是在切换“分支”时更改文件 我的文件buildspec.yaml: version: 0.2 phases: install: runtime-versions: nodejs: 12 commands: - npm install -g @an

我的项目中有一个“buildspec.yaml”文件。当我在“开发”分支时,他会发出一个命令来发送给定s3中的文件,但当我“推”我的“主”分支时,它必须发送到另一个s3,有没有任何方法可以在文件上设置一个条件,而不是在切换“分支”时更改文件

我的文件buildspec.yaml:

version: 0.2
phases:
  install:
    runtime-versions:
      nodejs: 12
    commands:
    - npm install -g @angular/cli
    - npm update
  build:
    commands:
    - ng build
  post_build:
    commands:
    - aws s3 rm s3://link-s3-dev --recursive  # when changing branches I need to change the address manually
    - aws s3 cp ./dist/portaldev s3://link-s3-dev --recursive #when changing branches I need to change the address manually
artifacts:
    files:
    - '**/*'



当我进入主分支时,我必须更改命令以将其发送到正确的s3,是否有方法在文件上保留条件,而不是在每个分支中保持此文件不同?

如果为两个分支创建两个管道,则可以使用环境变量来完成相同的操作

S3 bucket成为一个环境变量,比如BUILD\u OUTPUT\u bucket

  • aws s3 rm$BUILD\u OUTPUT\u BUCKET——递归
  • aws s3 cp./dist/portaldev$BUILD\u OUTPUT\u buck——递归
文档提供了有关为构建添加其他环境变量的信息(项目符号13)


如果可以使用可用于生成的变量获取分支名称,则可以运行脚本从生成本身中设置适当的存储桶。

如果为两个分支创建两个管道,则可以使用环境变量来完成相同的操作

S3 bucket成为一个环境变量,比如BUILD\u OUTPUT\u bucket

  • aws s3 rm$BUILD\u OUTPUT\u BUCKET——递归
  • aws s3 cp./dist/portaldev$BUILD\u OUTPUT\u buck——递归
文档提供了有关为构建添加其他环境变量的信息(项目符号13)

如果您可以使用可用于构建的变量获取分支名称,那么您可以运行一个脚本,从构建本身中设置适当的bucket