Travis-CI Пакет команд exec rake завершился с ошибкой 1. + Mystery 404

bundle exec rake отлично выполняет все тесты локально. Тем не менее, Travis CI продолжает взрываться Problem accessing /authentication, не давая больше информации для продолжения. Вот одна из неудачных сборок: https://travis-ci.org/Nase00/Horizon/builds/48094102 На всю жизнь я не могу понять, что вызывает ошибку аутентификации, когда Трэвис пытается запустить bundle exec rake.

Вот репозиторий проекта: https://github.com/Nase00/Horizon.


person Nase    schedule 23.01.2015    source источник


Ответы (1)


Я не уверен, какую версию Neo4j использует Трэвис (ОБНОВЛЕНИЕ: они используют 1.9.4, не поддерживается), но я предполагаю, что она немного старше той, которую поддерживает Neo4j.rb. Я являюсь одним из основных сопровождающих и создал поддержку аутентификации Neo4j 2.2, которая вам мешает, но я тестировал ее с разными версиями, возвращаясь к ранним подрывным версиям 2.1, и у меня не было проблем.

Лучше всего вообще не использовать Neo4j Трэвиса. Вместо этого настройте Travis для установки той же версии базы данных, которую вы используете для разработки и производства. В качестве бонуса задача rake, которая устанавливает Neo, также отключает авторизацию в версии 2.2, поэтому вам вообще не нужно с этим сталкиваться. Дело не в том, что мы против аутентификации, а в том, что мы думаем о задачах установки и настройки rake как об удобных функциях для среды разработки/тестирования, а не производства, поэтому отсутствие аутентификации кажется разумным по умолчанию.

Взгляните на наш файл .travis.yml, чтобы увидеть, как мы делаем установку. https://github.com/neo4jrb/neo4j/blob/master/.travis.yml. Резюме, которое решит вашу проблему:

script:
  - "bundle exec rake neo4j:install['community-2.2.0-M02'] neo4j:start default --trace"
language: ruby
rvm:
  - 2.0.0

Замените community-2.2.0-M02 на любую версию, которую вы хотите использовать. Мне придется проверить еще раз, но, насколько я помню, мы совместимы с версиями еще 2.1.2. Я извиняюсь за то, что это не опубликовано в наших документах — должно быть.

Я настоятельно рекомендую использовать Ruby 2.2.0 с Neo4j.rb. Мы генерируем много символов во время запросов Cypher, которые иначе не будут удалены сборщиком мусора.

ИЗМЕНИТЬ, чтобы получить дополнительную информацию

Самое первое, что делает модуль аутентификации, — это проверяет наличие конечной точки аутентификации REST. Во всех версиях Neo4j, которые я тестировал, он не выдавал такой ошибки, он просто возвращал пустое тело, что мы интерпретируем как признак того, что авторизация либо не поддерживается, либо отключена.

Последнее редактирование

Служба поддержки Travis подтвердила, что предоставленная ими версия Neo4j — 1.9.4.

person subvertallchris    schedule 24.01.2015
comment
Я также только что выпустил патч версии 4.0.1, который может решить эту проблему. - person Brian Underwood; 25.01.2015
comment
Хотя мне только что пришло в голову, что это может быть потому, что версия neo4j предшествует 2.x, которую гем не поддерживает. - person Brian Underwood; 25.01.2015
comment
Я только что написал Трэвису по электронной почте, чтобы узнать, какая у них версия. Не удивлюсь, если до сих пор 1.9. - person subvertallchris; 25.01.2015