如何使用AWS Code Deploy和AWS Code Pipeline一次部署多个git存储库?

时间:2019-06-02 05:18:33

标签: git autoscaling aws-code-deploy blue-green-deployment

我有3个不同的存储库,必须将其部署到同一自动伸缩组(deploymentType为Blue / Green)。我创建了3个不同的代码管道和一个部署组。

这里的问题是Blue / Green部署将使用启动模板中提供的AMI-id创建新的自动伸缩组,因此一次实例中只有一个分支。

因为所有3个回购代码都需要Web App正常运行。因为我不想为所有3个回购创建新的自动伸缩组。我想这样做:

虚拟分支A:

ProjectName
-Repo1Project
-Repo2Project
-Repo3Project
-appspec.yml
-attach-target-group-to-alb.sh

和在appspec.yml中:

version: 0.0
os: linux
files:
  - source: ProjectName/Repo1Project
    destination: /var/www/html/Repo1Project
  - source: ProjectName/Repo2Project
    destination: /var/www/html/Repo2Project
  - source: ProjectName/Repo3Project
    destination: /var/www/html/Repo3Project
hooks:
  BeforeInstall:
    - location: Repo1Project/Scripts/pre_install.sh
    - location: Repo2Project/Scripts/pre_install.sh
    - location: Repo3Project/Scripts/pre_install.sh
      timeout: 600
      runas: ec2-user
  AfterInstall:
    - location: Repo1Project/Scripts/post_install.sh
    - location: Repo2Project/Scripts/post_install.sh
    - location: Repo3Project/Scripts/post_install.sh
      timeout: 600
      runas: ec2-user
  AfterAllowTraffic:
     - location: attach-target-group-to-alb.sh
       timeout: 600
       runas: ec2-user

使用此命令更新每个文件夹:

要将其他分支中的特定文件/文件夹仅合并到当前

git checkout Repo1ProjectBranch ProjectName / Repo1Project

git commit -m“您的评论”

然后将其推送到实际的BranchB

但是我不确定这是否是有效的方法,或者还有其他更好的解决方案。因此,如果有人已经找到更好的解决方案,请考虑将其发布在这里。

0 个答案:

没有答案