如何在另一个git存储库中添加私有git存储库作为子模块?
在本地,当我执行git submodule update
时,它工作得很好,但是在github操作运行程序中,它失败了,因为它在结帐步骤中声明了url没有找到。
下面是我如何配置我的工作流文件。
jobs:
update_submodules:
runs-on: ubuntu-latest
steps:
# Checkout the repository to the GitHub Actions runner
- name: Checkout
uses: actions/checkout@v3
with:
submodules: true
# - name: Clone submodule
# run: git submodule update --init --recursive
- name: Pull & update submodules recursively
run: |
git submodule update --init --recursive
git submodule update --recursive --remote
在第二步就失败了。
发布于 2022-06-28 06:52:25
您不必对submodule update init
进行编码,因为它是action/checkout
本身的一个选项。
例如,第116期显示:
https://github.com/<-- username -->/<-- repo -->/settings/secrets/new
,给它一个唯一的名字,比如MY_REPO_PAT
。steps: - name: Checkout uses: actions/checkout@v2 with: token: ${{ secrets.MY\_REPO\_PAT }} submodules: recursive
或(替代),第287期
我有一个解决方案,不需要个人访问令牌,但将对子回购提交的引用保留在一个地方(使用git子模块)。 -名称:克隆子模块使用:action/ checkout @v2,其中包含:存储库:/ path: path ssh-key:${ secrets.SSH_KEY }持久化-凭据:真-名称:签出子模块运行:\ git子模块init子模块更新 尽管操作签出了
master
,git submodule
命令签出了正确的提交,但这避免了在github操作中保留ref。
关于最后一期(287),马蒂杰斯·库伊曼还描述了如何设置和管理Github应用程序。
我还意识到,您可以简单地使用签出操作来包含多个子模块部署密钥。 我很惊讶这里还没有提到这件事。 ..。步骤:-使用: actions/checkout@v3和: ssh-key: AC.26 ${{ secrets.SSH_PRIVATE_KEY_SUBMODULE_1 }} ${ secrets.SSH_PRIVATE_KEY_SUBMODULE_2 }子模块:‘递归’. 只需记住,键必须使用到存储库的链接/注释生成。 "git@github.com:owner/repo.git“ GH签出可以将密钥与正确的存储库连接起来。
https://stackoverflow.com/questions/72781712
复制相似问题