尝试减轻从github拉出的大量LFS。产生成本。
所以很高兴看到来自LFS的大型blob缓存在github操作中得到了支持。
下面是在操作/签出模块存储库的issue #165上发布的示例
- name: Checkout code
uses: actions/checkout@v2
- name: Create LFS file list
run: git lfs ls-files -l | cut -d' ' -f1 | sort > .lfs-assets-id
- name: Restore LFS cache
uses: actions/cache@v2
id: lfs-cache
with:
path: .git/lfs
key: ${{ runner.os }}-lfs-${{ hashFiles('.lfs-assets-id') }}-v1
- name: Git LFS Pull
run: git lfs pull
- name: run compile and package
run: python CompileAndPackage.py我当前的流程如下,我声明支持lfs,并将submodules支持设置为递归。我调用的git LFS位于一个子模块中。
我应该如何将以上内容集成到我的流程中,如下所示。
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
lfs: 'true'
# recursively checkout submodules.
submodules: recursive我不确定检出和子模块更新(我假设lfs拉取发生的地方)会在我检查缓存之前发生。
下面是我想使用的方法
steps:
- uses: actions/checkout@v2
with:
lfs: 'true'
submodules: recursive
ssh-key: ${{ secrets.git_key }}
- name: Create LFS file list
run: git lfs ls-files -l | cut -d' ' -f1 | sort > .lfs-assets-id
- name: Restore LFS cache
uses: actions/cache@v2
id: lfs-cache
with:
path: .git/lfs
key: ${{ runner.os }}-lfs-${{ hashFiles('.lfs-assets-id') }}-v1
- name: Git LFS Pull
run: git lfs pull在检查缓存后,我应该明确地调用git submodule update --init吗?afaik它通过操作/签出自动发生
更新
嘿,看起来真的起作用了!
github不假思索地透露了谁从LFS配额中分一杯羹的细节。会很高兴听到有人说这是合法的。

发布于 2021-10-12 12:49:22
我为此创建了一个动作,action-cached-lfs-checkout。
而不是
- name: Checkout code
uses: actions/checkout@v2
with:
lfs: true简单地做
- name: Checkout code
uses: nschloe/action-cached-lfs-checkout@v1发布于 2021-03-18 21:37:40
这是排序的,请参见更新。即时消息关闭
https://stackoverflow.com/questions/66688305
复制相似问题