4

我有 3 个不同的存储库必须部署(部署类型为蓝/绿)到同一个自动缩放组。我创建了 3 个不同的代码管道和一个部署组。

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

因为 Web 应用程序需要所有 3 个 repos 代码才能运行。因为我不想为所有 3 个存储库创建新的自动缩放组。我想过这样做:

虚拟分支 A:

项目
名称 - 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 项目名称/Repo1Project

git commit -m "你的评论"

然后将其推送到实际的 BranchB

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

4

0 回答 0