Как я могу добавить исполняемый файл в свой путь в задании CircleCI?

#circleci

Вопрос:

Я загружаю и распаковываю двоичный файл одним шагом.

- 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 двоичный файл таким образом, чтобы его мог использовать другой шаг запуска?

Комментарии:

1. Как насчет перемещения файла по уже известному пути ? (это скорее быстрое решение, чем проверенное в бою решение)

2. Кроме этого, может быть, вы могли бы использовать полный путь ? Да, я предлагаю только решения для утиной ленты :c

Ответ №1:

Основная проблема заключается в том, что PATH переменная должна содержать список каталогов. Вы добавили сам фактический двоичный файл в путь вместо каталога, в котором он находится.

Так, например, вместо /tmp/binaryen-version_101/bin/wasm-opt тебя хотят /tmp/binaryen-version_101/bin/ . Кроме того, после добавления каталога 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