跳转至

使用git sparse checkout实现更快的文档构建

利用GitHub Actions中的“git sparse checkout”使我们能够加快速度 文档构建在我们的存储库中,将结账时间从20缩短到30 秒到2秒。

开发一种在CI工作流中构建文档的有效方法 至关重要,尤其是在拥有数千个存储库的大型存储库中工作时 承诺,就像我们一样。当然,我们希望快速构建文档 高效,确保快速高效的工作流程。当同时使用时 很棒的[git提交者][git提交者]和[git修订日期本地化] [git修订日期本地化]插件,用于显示[文档贡献者]和 在每页底部的[日期]处,我们需要设置“获取深度:0”, 这导致我们的存储库的结账时间为20到30秒。By 在GitHub Actions中利用[git sparse checkout][git sparse checkout], 退房时间缩短到2秒。

底漆

[git sparse checkout][git sparse checkout]只允许您签出一个 存储库中文件的子集,使其对大型应用程序非常有用 完整签出需要很长时间,并且包含许多文件的存储库 在构建文档时不相关。

GitHub操作

GitHub Actions中启用[`git sparse checkout][git sparse checkout] 并确保您只构建所需的文档,添加 将以下行添加到工作流文件中:

- uses: actions/checkout@v4
  with:
    fetch-depth: 0
    sparse-checkout: |
      docs
      includes

[git sparse checkout][git sparse checkout]始终检出所有文件 位于存储库的根目录中。这意味着,无论指定了什么 稀疏签出的路径或目录,位于根目录中的文件 存储库将始终包含在签出过程中。

因此,您只需指定构建所需的目录 文档。在我们的例子中,我们只需要“docs”和“includes”文件夹, 但如果你需要额外的目录,你可以把它们添加到 列表。GitHub Actions的完整示例工作流:

name: documentation
on:
  push:
    branches:
      - master
      - main
permissions:
  contents: write
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
          sparse-checkout: |
            docs
            includes
      - uses: actions/setup-python@v4
        with:
          python-version: 3.x
      - run: pip install mkdocs-material
      - run: mkdocs gh-deploy --force

结论

就这些!我们对结果非常满意,并希望这将 帮助您加快GitHub Actions中的文档构建速度。As 请随时在下面的评论中分享您的想法和经验。