npm install -g dredd@stable не работает на CircleCI из-за npm ERR! код ECONNRESET

У меня есть проект на CircleCI, который в какой-то момент начал краснеть (из-за сбоя при установке dredd). В настоящее время один и тот же проект (тот же код, тот же circle.yml) может потерпеть неудачу или преуспеть случайно.

Сбой всегда происходит на этапе npm install -g dredd@stable со следующей ошибкой, которая повторяется несколько раз и в конечном итоге приводит к сбою сборки:

make: Leaving directory /opt/circleci/nodejs/v4.2.6/lib/node_modules/dredd/node_modules/dredd-transactions/node_modules/fury-adapter-apib-parser/node_modules/drafter/node_modules/protagonist/build'
npm ERR! Linux 3.13.0-117-generic
npm ERR! argv "/opt/circleci/nodejs/v4.2.6/bin/node" "/opt/circleci/nodejs/v4.2.6/bin/npm" "install" "-g" "dredd@stable"
npm ERR! node v4.2.6
npm ERR! npm  v2.14.12
npm ERR! code ECONNRESET
npm ERR! errno ECONNRESET
npm ERR! syscall read
npm ERR! network read ECONNRESET
npm ERR! network This is most likely not a problem with npm itself
npm ERR! network and is related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network 
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help config'

Если я попытаюсь перезапустить сборку несколько раз, в какой-то момент она будет успешной (зеленой). Затем установка dredd показывает что-то вроде этого:

make: Leaving directory /opt/circleci/nodejs/v4.2.6/lib/node_modules/dredd/node_modules/dredd-transactions/node_modules/fury-adapter-apib-parser/node_modules/drafter/node_modules/protagonist/build'
/opt/circleci/nodejs/v4.2.6/bin/dredd -> /opt/circleci/nodejs/v4.2.6/lib/node_modules/dredd/bin/dredd
[email protected] /opt/circleci/nodejs/v4.2.6/lib/node_modules/dredd
├── [email protected]
├── [email protected]
├── [email protected]

etc', в основном успешно установив dredd и перейдя к тестированию сборки.

Поскольку он, кажется, терпит неудачу случайным образом, я не думаю, что прокси-сервер имеет к этому какое-то отношение. Вот файл circle.yml для справки:

machine:
  environment:
    APIARY_API_KEY: "123456789ab12cd1234a1a1a123a123a"
  ruby:
    version: 2.3.1
dependencies:
  pre:
    - npm install -g dredd@stable
    - gem install apiaryio
    - pip install dredd_hooks
database:
  override:
    - bundle exec rake db:create db:schema:load db:seed
test:
  pre:
    - apiary fetch --api-name=ourAPIName --output=api-description.yml
    - dredd

Любая помощь будет приветствоваться.


person Shachar R    schedule 23.05.2017    source источник
comment
Похоже, некоторые проблемы с подключением к реестру npm. Я бы связался со службой поддержки CircleCI, чтобы решить эту проблему.   -  person Honza Javorek    schedule 23.05.2017
comment
Вы пробовали Yarn, чтобы узнать, помогает ли это стабильности сборки?   -  person FelicianoTech    schedule 25.05.2017


Ответы (1)


Я столкнулся с той же проблемой. Одно исправление, которое я нашел, заключалось в том, чтобы изменить реестр для npm, чтобы использовать HTTP вместо HTTPS. В моем файле circle.yml я изменил свои зависимости с:

dependencies:
  pre:
    - npm install -g [email protected]

to

dependencies:
  pre:
    - npm config set registry http://registry.npmjs.org/
    - npm install -g [email protected]
person Flynn81    schedule 06.07.2017