You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub Actions中安装uv后供后续作业复用,无需重复安装?

解决GitHub Actions中跨作业持久化uv依赖管理器的问题

问题原因

GitHub Actions的每个作业(job)运行在独立的虚拟机/容器实例中,作业之间的文件系统完全隔离。setup作业中安装的uv二进制文件仅存在于该作业的运行环境中,无法直接被后续的build、test作业访问,这就是你遇到uv: command not found的核心原因。

解决方案

方案1:利用actions/cache手动缓存uv二进制文件

通过缓存uv的安装目录,在setup作业中保存文件,后续作业恢复缓存并配置PATH即可复用uv。

完整工作流示例

jobs:
  setup:
    runs-on: ubuntu-latest
    steps:
      - name: Check out code
        uses: actions/checkout@v4

      - name: Install uv with cache enabled
        uses: astral-sh/setup-uv@v5
        with:
          enable-cache: true
          cache-dependency-glob: "uv.lock"
      
      - name: Verify uv Installation
        run: |
          echo "Checking uv version:"
          uv --version

      - name: Cache uv binary
        uses: actions/cache@v4
        with:
          path: ~/.local/bin/uv
          key: ${{ runner.os }}-uv-${{ hashFiles('**/uv.lock') }}
          restore-keys: |
            ${{ runner.os }}-uv-

  build:
    runs-on: ubuntu-latest
    needs: setup  # 确保setup作业先执行
    steps:
      - name: Check out code
        uses: actions/checkout@v4

      - name: Restore uv binary from cache
        uses: actions/cache@v4
        with:
          path: ~/.local/bin/uv
          key: ${{ runner.os }}-uv-${{ hashFiles('**/uv.lock') }}
          restore-keys: |
            ${{ runner.os }}-uv-

      - name: Add uv directory to PATH
        run: echo "$HOME/.local/bin" >> $GITHUB_PATH

      - name: Verify uv Availability
        run: uv --version

方案2:在后续作业中复用astral-sh/setup-uv自带缓存

astral-sh/setup-uv本身集成了缓存功能,后续作业中直接调用该action时,会自动从缓存恢复uv,无需重新下载安装,这是更简洁的方案。

完整工作流示例

jobs:
  setup:
    runs-on: ubuntu-latest
    steps:
      - name: Check out code
        uses: actions/checkout@v4

      - name: Install uv with cache enabled
        uses: astral-sh/setup-uv@v5
        with:
          enable-cache: true
          cache-dependency-glob: "uv.lock"
      
      - name: Verify uv Installation
        run: |
          echo "Checking uv version:"
          uv --version

  build:
    runs-on: ubuntu-latest
    steps:
      - name: Check out code
        uses: actions/checkout@v4

      - name: Restore uv from cache
        uses: astral-sh/setup-uv@v5
        with:
          enable-cache: true
          cache-dependency-glob: "uv.lock"

      - name: Verify uv Availability
        run: uv --version

关键注意事项

  • 无需在setup作业中重复调用astral-sh/setup-uv,一次配置enable-cache即可。
  • 确保后续作业中使用的缓存key与setup作业一致,这样才能正确匹配缓存文件。

内容的提问来源于stack exchange,提问作者blue-sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 06:15:11