Локальное тестирование репозитория Perl с использованием Travis CI (с докером) - PullRequest
2 голосов
/ 13 мая 2019

Я бы хотел исправить ошибку в репозитории Perl (теперь принадлежит мне, я только что отправил несколько запросов на извлечение), но в данный момент он не проходит свои тесты Travis CI (до моих запросов на извлечение).

Моя цель - иметь возможность запускать тесты Travis CI локально, начиная с .travis.yml хранилища.

Обратите внимание, что я совершенно новичок в Travis CI.

Следуя решениям других компаний, которые указывают на этот FAQ (http://web.archive.org/web/20180929150027/https://docs.travis-ci.com/user/common-build-problems/#troubleshooting-locally-in-a-docker-image),, что, как вы можете видеть, больше не доступно официально в travis-ci.com, я пробовал:

sudo  docker pull travisci/ci-amethyst:packer-1512508255-986baf0
sudo docker run --name travis-debug -dit travisci/ci-amethyst:packer-1512508255-986baf0 /sbin/init
sudo docker exec -it travis-debug bash -l

Из контейнера:

su - travis
git clone https://github.com/{user}/{repo}.git

Теперь я не знаю, как создать скрипт bash для запуска тестов, как последнийдва шага (установка зависимостей вручную / запуск сборки сборки Travis CI) выглядит загадочно (я не знаю, как запустить сборку, и, возможно, приведет к отсутствию воспроизводимости (если я устанавливаю зависимости вручную, откуда я знаю, что получуте же результаты, что и в облачном тесте?)

Я попытался начать с процедуры, описанной здесь (https://github.com/travis-ci/travis-build), одна ошибка - «Не удалось найти каталог Gemfile или .bundle /», но мне, вероятно, нужнонекоторые пропущенные шаги.

1 Ответ

3 голосов
/ 13 мая 2019

Для чего это стоит, я думаю, что вы идете на это с неправильной точки зрения.

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

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

По моему опыту, ваше .travis.yml должно быть очень простым, так как оно просто запускает один или два сценария или команды, которые могут комфортно работать локально.

Если вы знакомы с Docker, ярассмотрит возможность создания локального Dockerfile со всеми зависимостями и переведет ваши тесты в среду докера.Как только вы преуспели в этом шаге, попросить Трэвиса сделать то же самое (запустить тесты в докере) тривиально.

Не уверен, что это тот ответ, который вы искали, но это было слишком долго для комментария.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...