python Github操作不重用缓存

zpgglvta  于 2023-02-18  发布在  Python
关注(0)|答案(2)|浏览(131)

我有一个非常简单的步骤来实现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时,新的缓存就会生成,即使依赖关系没有改变。正如我发现的那样,这是由于缓存分支的限制。
我的问题是如何创建一个公共缓存?或者如何删除分支限制?
我很少需要重新运行我的操作,因此这种缓存实现没有任何好处。

ct3nt3jp

ct3nt3jp1#

每次运行都会有一个全新的runner,所以你需要让GitHub存储缓存文件,你可以使用以下操作:https://github.com/actions/cache
然后将其用作缓存键:只要该文件不改变,它就不会改变:诗歌-${{ hashFiles(“诗歌.锁”)}}
通过这个动作,第一次运行会生成该高速缓存并上传到GitHub,然后下一次运行会下载缓存,接下来的步骤可以使用缓存中的文件。

5jvtdoz2

5jvtdoz22#

我重用了action(它真的很轻,可以快速地进行简单的检查),并创建了一个新的工作流,它可以在master中的锁定文件更改时运行,也可以手动运行。

on:
  push:
    branches:
      - master
    paths:
      - 'poetry.lock'
  workflow_dispatch:
    inputs:
      logLevel:
        description: 'Log level'
        required: false
        default: 'warning'
        type: choice
        options:
          - info
          - warning
          - debug 
jobs:  
    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 ...

相关问题