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