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

如何在Composite GitHub Action中添加二进制文件至系统路径?

解决方案

要让后续工作流步骤能直接调用下载的get-version二进制文件,你有两种可靠的方式,无需依赖第三方Action:

方法1:将二进制移动到已在PATH中的目录

GitHub Runner默认把$HOME/.local/bin包含在系统PATH里,你可以把下载的二进制移到这个目录:

修改你的Composite Action代码:

name: get-version 
description: Get version from Cargo.toml

runs:
  using: composite
  steps:
    - shell: bash
      run: |
        curl -SLO https://github.com/o0th/get-version/releases/download/0.2.0/get-version
        chmod +x get-version
        # 创建目录(如果不存在)并移动二进制
        mkdir -p "$HOME/.local/bin"
        mv get-version "$HOME/.local/bin/"

方法2:将二进制所在目录添加到GITHUB_PATH(推荐)

GitHub Actions提供了GITHUB_PATH环境变量,向这个文件写入路径后,后续所有步骤的系统PATH都会自动包含该路径。这种方式更干净,适合存放临时工具:

修改你的Composite Action代码:

name: get-version 
description: Get version from Cargo.toml

runs:
  using: composite
  steps:
    - shell: bash
      run: |
        curl -SLO https://github.com/o0th/get-version/releases/download/0.2.0/get-version
        chmod +x get-version
        # 创建临时目录存放二进制
        mkdir -p "$RUNNER_TEMP/get-version-bin"
        mv get-version "$RUNNER_TEMP/get-version-bin/"
        # 将临时目录路径添加到GITHUB_PATH
        echo "$RUNNER_TEMP/get-version-bin" >> "$GITHUB_PATH"

为什么这样可行?

  • 方法1利用了Runner默认配置的PATH目录,移动后二进制会被系统自动识别;
  • 方法2通过官方提供的GITHUB_PATH机制,确保后续步骤的环境能找到工具,且临时目录会在工作流结束后自动清理,不会留下冗余文件。

你的测试工作流无需修改,两种方法都能让get-version命令在后续步骤中直接执行。

内容的提问来源于stack exchange,提问作者o0th

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 06:17:12