CircleCi 2.0: команда aws не найдена - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь перенести кружок с версии 1.0 на версию 2.0.

Сначала я не могу установить awscli, но, наконец, могу установить его с помощью приведенного ниже кода, но получил еще одну ошибку, которая не может найти команду aws.

version: 2
    jobs:
      build:
        docker:
          - image: circleci/node:8.9.1
    steps:
      - checkout
      - restore_cache:
          key: dependency-cache-{{ checksum "package.json" }}
  - save_cache:
      key: dependency-cache-{{ checksum "package.json" }}
      paths:
        - node_modules
deploy:
    docker:
      - image: circleci/node:8.9.1
steps:
  - checkout
  - run:
      name: Install yarn
      command: yarn install
  - run:
      name: Install awscli
      command: |
        sudo apt-get install python-pip python-dev
        pip install 'pyyaml<4,>=3.10' awscli --upgrade --user
  - run:
      name: AWS S3
      command: aws s3 sync build s3://<URL> --delete

workflows:
  version: 2
  build-and-deploy:
    jobs:
      - build
      - deploy:
          requires:
            - build
          filters:
            branches:
              only: master

Показывает "aws: команда не найдена". Я не уверен, что делаю что-то не так или нет, но я хочу знать, в чем проблема и как ее решить. Спасибо.

Ответы [ 3 ]

0 голосов
/ 05 сентября 2018

Я бы переделал ваш конфиг. Каждая работа должна иметь фокус / точку. Например, для развертывания вам не нужен NodeJS, вам нужен CLI AWS, поэтому используйте для этого образ.

version: 2
    jobs:
      build:
        docker:
          - image: circleci/node:8.9.1
    steps:
      - checkout
      - restore_cache:
          key: dependency-cache-{{ checksum "package.json" }}
  - save_cache:
      key: dependency-cache-{{ checksum "package.json" }}
      paths:
        - node_modules
  - persist_to_workspace:
      root: /home/circleci
      paths: project
deploy:
    docker:
      - image: cibuilds/aws:1.16.1
steps:
  - checkout
  - attach_workspace:
      at: /home/circleci
  - run:
      name: AWS S3
      command: aws s3 sync build s3://<URL> --delete

workflows:
  version: 2
  build-and-deploy:
    jobs:
      - build
      - deploy:
          requires:
            - build
          filters:
            branches:
              only: master
0 голосов
/ 06 сентября 2018

Этот способ установки awscli, похоже, отлично работает на разных системах. Протестировано на circleci / openjdk: 8-jdk , не требует дополнительной установки.

Редактировать Кажется, что в образе узла отсутствует установка libpython-dev.

##################
# Install AWS CLI
##################

# For node images on Circle, install libpython-dev
sudo apt-get install -y libpython-dev

# Download awscli bundle
curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"

# Unzip the downloaded bundle
unzip awscli-bundle.zip

# Run the install script and install to ~/bin/aws directory
./awscli-bundle/install -b ~/bin/aws

После этого для запуска команд awscli укажите полный путь к исполняемому файлу aws, например:

~/bin/aws s3 ls

Ресурсы

Полезная тема GitHub

Пример репозитория GitHub с конфигурацией Circle на узле: 8.9.1

CircleCI строит

0 голосов
/ 03 сентября 2018

Попробуйте выполнить следующий шаг (взят из документации v2);

steps:
  - run:
      name: Install PIP
      command: sudo apt-get install python-pip python-dev
  - run:
      name: Install awscli
      command: sudo pip install awscli
  - run:
      name: Deploy to S3
      command: aws s3 sync build s3://<URL> --delete
...