gpt4 book ai didi

git - 如何在 AWS 上自动部署带有子模块的 git 存储库?

转载 作者:IT王子 更新时间:2023-10-29 00:50:58 29 4
gpt4 key购买 nike

我的 git 存储库中有一个子模块,我的目录结构如下,

app
-- folder1
-- folder2
-- submodule @5855

我已经使用自动部署服务在 AWS 上部署了我的代码。现在,在服务器上,我在父目录中有代码,但子模块目录是空的。

Q1) 如何获取子模块中的数据。我在服务器上的存储库不是 git 存储库。我是否需要先将其转换为 git repo,然后运行 ​​submodule 命令来获取它?

Q2) 我怎样才能自动部署子模块?

谢谢

最佳答案

编辑:Codebuild 现在有一个“子模块”标志 https://docs.aws.amazon.com/codebuild/latest/APIReference/API_GitSubmodulesConfig.html

这是对我有用的

我们将重新初始化 git 存储库,然后在部署的构建阶段触发子模块克隆,本质上是修补以支持 codepipeline/codebuild 中的子模块

  • 为您的 github 帐户生成一个新的 SSH key ,如果使用您可能想要创建部署用户的组织
  • 使用 aws ssm put-parameter --name build_ssh_key --type String --value "$(cat id_rsa)" 将此 ssh key 存储在您的 aws 参数存储中理想情况下使用 SecureString 而不是 String 但我遵循的指南只是使用了字符串所以我不确定命令行是否需要任何额外的参数
  • 进入 IAM 并授予您的 CodePipeline 用户对您的 paramstore 的读取权限,我刚刚授予对 SSM 的读取权限

然后使您的 buildspec.yml 如下所示:

version: 0.2

env:
parameter-store:
build_ssh_key: "build_ssh_key"

phases:
install:
commands:
- mkdir -p ~/.ssh
- echo "$build_ssh_key" > ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
- ssh-keygen -F github.com || ssh-keyscan github.com >>~/.ssh/known_hosts
- git config --global url."git@github.com:".insteadOf "https://github.com/"
- git init
- git remote add origin <Your Repo url here using the git protocol>
- git fetch
- git checkout -t origin/master
- git submodule init
- git submodule update --recursive
build:
commands:
- echo '...replace with real build commands...'

artifacts:
files:
- '**/*'

关于git - 如何在 AWS 上自动部署带有子模块的 git 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42712542/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com