如何在 CircleCI 作业中将可执行文件添加到我的路径?

How can I add an executable to my path in a CircleCI job?

我正在 运行 步骤中下载并解压缩 binaryen

- run: wget -c https://github.com/WebAssembly/binaryen/releases/download/version_101/binaryen-version_101-x86_64-linux.tar.gz -O - | tar -xz -C /tmp/

然后我将更新 $BASH_ENV 中的路径。

- run: echo "export PATH=/tmp/binaryen-version_101/bin/wasm-opt:${PATH}" >> $BASH_ENV

但是,我仍然找不到 wasm-opt 的命令。

如何安装下载的 wasm-opt 二进制文件以便另一个 运行 步骤可以使用它?

主要问题是 PATH 变量应该包含一个目录列表。您将实际的二进制文件本身添加到路径而不是它所在的目录。

例如,您想要 /tmp/binaryen-version_101/bin/ 而不是 /tmp/binaryen-version_101/bin/wasm-opt。此外,在将目录添加到 PATH 之后,您将无法 运行 这些二进制文件,直到下一步。

这是我制作的示例配置:

version: 2.1
workflows:
  main:
    jobs:
      - build
jobs:
  build:
    docker:
      - image: cimg/base:stable
    steps:
      - checkout
      - run: curl -sSL "https://github.com/WebAssembly/binaryen/releases/download/version_101/binaryen-version_101-x86_64-linux.tar.gz" | tar -xz -C /tmp/
      - run: echo 'export PATH=/tmp/binaryen-version_101/bin/:${PATH}' >> $BASH_ENV
      - run: wasm-opt