yos*_*hco 6 github github-actions
试图减轻来自 github 的大量 LFS 拉取。产生费用。
所以很高兴看到 github actions 支持缓存来自 LFS 的大 blob。
这是在 actions/checkout 模块存储库中发布的问题#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
Run Code Online (Sandbox Code Playgroud)
我当前的流程如下,我声明支持lfs并将submodules支持设置为递归。我调用的 git LFS 位于子模块内。
我应该如何将上述内容整合到我的流程中,如下。
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
lfs: 'true'
# recursively checkout submodules.
submodules: recursive
Run Code Online (Sandbox Code Playgroud)
我不确定在检查缓存之前会发生签出和子模块更新(我假设发生 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
Run Code Online (Sandbox Code Playgroud)
git submodule update --init我应该在检查缓存后明确调用吗?据我所知,它是通过操作/结账自动发生的
更新
嘿,看起来确实有效!
github 上并没有详细说明谁占用了 LFS 配额。很高兴听到有人说这是合法的。
我为此创建了一个操作,action-cached-lfs-checkout。
代替
- name: Checkout code
uses: actions/checkout@v2
with:
lfs: true
Run Code Online (Sandbox Code Playgroud)
简单地做
- name: Checkout code
uses: nschloe/action-cached-lfs-checkout@v1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2312 次 |
| 最近记录: |