我有一个非常简单的步骤来实现Github操作上的CI,它应该缓存Python依赖项,所以它会保存大量的计算时间。
some-step:
name: 'Test step'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: pipx install poetry
- name: Set up Python 3.8
uses: actions/setup-python@v4
with:
python-version: "3.8"
architecture: "x64"
cache: "poetry"
- name: Install dependencies
run: poetry install
- run: poetry run ...
每当我创建一个新的PR时,新的缓存就会生成,即使依赖关系没有改变。正如我发现的那样,这是由于缓存分支的限制。
我的问题是如何创建一个公共缓存?或者如何删除分支限制?
我很少需要重新运行我的操作,因此这种缓存实现没有任何好处。
2条答案
按热度按时间ct3nt3jp1#
每次运行都会有一个全新的runner,所以你需要让GitHub存储缓存文件,你可以使用以下操作:https://github.com/actions/cache
然后将其用作缓存键:只要该文件不改变,它就不会改变:诗歌-${{ hashFiles(“诗歌.锁”)}}
通过这个动作,第一次运行会生成该高速缓存并上传到GitHub,然后下一次运行会下载缓存,接下来的步骤可以使用缓存中的文件。
5jvtdoz22#
我重用了action(它真的很轻,可以快速地进行简单的检查),并创建了一个新的工作流,它可以在master中的锁定文件更改时运行,也可以手动运行。