You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过GitHub Actions访问Git子模块文件失败的问题排查

GitHub Actions构建Eleventy站点时子模块内容无法访问

场景

我在mysite_11ty仓库搭建Eleventy静态站点,把Markdown文件、数据、图片等内容单独放在mysite_content仓库,并将其设为mysite_11ty的Git子模块。本地环境下,通过rsync同步内容文件到Eleventy构建目录后能正常构建,但在GitHub Actions中执行构建时失败。

相关配置文件

.github/workflows/main.yml

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      # Checks-out your repository under $GITHUB_WORKSPACE, 
      # so your workflow can access it
      - uses: actions/checkout@main

      - name: Use Node.js 20.xw
        uses: actions/setup-node@v3
        with:
          node-version: 20.x
      
      - name: Install packages
        run: npm ci
        
      - name: Run npm build
        run: npm run build

package.json

{
  "scripts": {
    "build": "./scripts/set_up_submodule_files_github_actions.sh && eleventy"
  },
<etc.>
}

scripts/set_up_submodule_files_github_actions.sh

echo "Updating content submodule"
git submodule set-branch -b main mysite_content
echo "Syncing markdown"
rsync -avmq \
 --include='*.md' \
  -f 'hide,! */' \
 mysite_content/* .

错误信息

rsync: [sender] change_dir "/home/runner/work/mysite_11ty/mysite_11ty/mysite_content/" failed: No such file or directory (2)

已排查操作

  • 在构建脚本中加入ls命令,确认路径与本地一致,输出显示mysite_content目录存在
  • 在mysite_content仓库的Settings>Actions中配置允许组织内的Actions访问

正确解决方案

直接在GitHub Action的检出步骤中处理子模块,无需在构建脚本中操作。修改actions/checkout步骤如下:

- uses: actions/checkout@v4
  with:
    submodules: 'recursive'
    token: ${{ secrets.MY_SUBMODULE_PAT }}

内容的提问来源于stack exchange,提问作者AaronM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 18:05:13