Npm возвращает "permission denied" в сборке circleci

Как исправить эту ошибку? Я обновил CircleCI до 2.0 и теперь не могу запускать тесты.

> npm test

sh: 1: npm: Permission denied

Как я могу использовать sudo или что-то еще?

circle.yml

    machine:
  node:
    version: 8.9.1
dependencies:
  pre:
    - sudo sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe restricted multiverse"
    - sudo apt update
    - sudo apt-get install python2.7-dev
    - sudo easy_install --upgrade six
    - sudo pip install --upgrade urllib3==1.21.1
    - sudo pip install --upgrade pip
    - sudo pip install --upgrade blessed
    - sudo pip install awsebcli==3.12.3 --ignore-installed six pyyaml
deployment:
  production:
    branch: production
    commands:
      - bash ./deploy_prod.sh
      - eb deploy stmi-production
  staging:
    branch: master
    commands:
      - bash ./deploy_staging.sh
      - eb deploy stmi-dev

config.yml

версия: 2

jobs:
  build:
    working_directory: ~/systemsthinkinginstitute/stmi-test-web
    parallelism: 1
    shell: /bin/bash --login
    environment:
      CIRCLE_ARTIFACTS: /tmp/circleci-artifacts
      CIRCLE_TEST_REPORTS: /tmp/circleci-test-results
    docker:
    - image: circleci/build-image:ubuntu-14.04-XXL-upstart-1189-5614f37
      command: /sbin/init
    steps:
    - checkout
    - run: mkdir -p $CIRCLE_ARTIFACTS $CIRCLE_TEST_REPORTS
    - run:
        working_directory: ~/systemsthinkinginstitute/stmi-test-web
        command: nvm install 8.9.1 && nvm alias default 8.9.1
    - restore_cache:
        keys:
        - v1-dep-{{ .Branch }}-
        - v1-dep-master-
        - v1-dep-
    - run: sudo sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe restricted multiverse"
    - run: sudo apt update
    - run: sudo apt-get install python2.7-dev
    - run: sudo easy_install --upgrade six
    - run: sudo pip install --upgrade urllib3==1.21.1
    - run: sudo pip install --upgrade pip
    - run: sudo pip install --upgrade blessed
    - run: sudo pip install awsebcli==3.12.3 --ignore-installed six pyyaml
    - run: rm -rf /home/ubuntu/.aws
    - run: if [ -z "${NODE_ENV:-}" ]; then export NODE_ENV=test; fi
    - run: export PATH="~/systemsthinkinginstitute/stmi-test-web/node_modules/.bin:$PATH"
    - run: npm install
    - save_cache:
        key: v1-dep-{{ .Branch }}-{{ epoch }}
        paths:
        - vendor/bundle
        - ~/virtualenvs
        - ~/.m2
        - ~/.ivy2
        - ~/.bundle
        - ~/.go_workspace
        - ~/.gradle
        - ~/.cache/bower
        - ./node_modules
    - run: npm test
    - store_test_results:
        path: /tmp/circleci-test-results
    - store_artifacts:
        path: /tmp/circleci-artifacts
    - store_artifacts:
        path: /tmp/circleci-test-results

Можем ли мы увидеть, что ваш config.yml отредактирован в соответствии с вашим вопросом, отформатирован соответствующим образом?

halfer 11.09.2018 00:11

Также удалите изображение в своем сообщении и замените его текстовым эквивалентом. Текст, заключенный в изображения, несовместим с буфером обмена, программами чтения с экрана и поисковыми системами, и если вы можете использовать текст вместо этого, это может помочь вашим читателям помочь вам.

halfer 11.09.2018 00:12

Какой образ Docker вы используете?

FelicianoTech 11.09.2018 01:03

@halfer, я обновил вопрос

SmiLe 12.09.2018 11:18

Хорошо, намного лучше, но я не вижу better-npm-run в вашей конфигурации YAML?

halfer 12.09.2018 12:52

@halfer Это в package.json

SmiLe 12.09.2018 13:00

Может, стоит показать это в вашем вопросе? :-)

halfer 12.09.2018 13:01

@halfer также у меня есть config.yml, содержащий -run: npm test, я заменил его на -run:sudo npm test, но он не работает

SmiLe 12.09.2018 13:01

@halfer -run:sudo npm test у меня не работает

SmiLe 12.09.2018 13:10

Пожалуйста, откатите свой вопрос - читатели должны видеть, что вы используете Машинный исполнитель. Вы можете добавить дополнительный материал в конце.

halfer 12.09.2018 13:11

@FelicianoTech circleci/build-image:ubuntu-14.04-XXL-upstart-1189-5614f37 было по умолчанию

SmiLe 12.09.2018 15:33

Я очень запутался. Конфигурация в вашем вопросе не использует это и не является конфигурацией CircleCI 2.0.

FelicianoTech 12.09.2018 18:06

@FelicianoTech, у меня плохо. Я также добавил config.yml

SmiLe 13.09.2018 07:17
0
13
727
1

Ответы 1

Чтобы запустить "лучше-npm-run test" от имени суперпользователя, вам нужно добавить sudo в начале:

$ sudo better-npm-run test

пользователь / пароль требуется для выполнения с помощью sudo

"scripts": { "test": "sudo better-npm-run test" } Как это?
SmiLe 10.09.2018 11:15

Вы должны войти в свой терминал как root.

Sergi Santana 10.09.2018 15:12

Другие вопросы по теме