Я только что присоединился к проекту, и я новичок в travis-ci. Я бы предпочел не помещать каждое небольшое изменение в .travis.yml и каждое небольшое изменение, которое я делаю в исходный код, чтобы запустить сборку. С Дженкинс вы можете скачать Дженкинс и работать локально. Трэвис предлагает что-то подобное?
Примечание: я видел travis-ci cli и загрузил его, но все, что он, похоже, делает, это вызывает их API, который затем подключается к моему репозиторию github, поэтому, если я не нажму, то перезапуск не будет иметь значения последняя сборка.
install:
разделе, и, вероятно, именно этот вопрос больше беспокоит.Ответы:
Этот процесс позволяет полностью воспроизвести любое задание по сборке Travis на вашем компьютере. Кроме того, вы можете прервать процесс в любое время и отладить. Ниже приведен пример, в котором я прекрасно воспроизвожу результаты задания № 191.1 в php-school / cli-menu .
Предпосылки
Настройте среду сборки
Ссылка: https://docs.travis-ci.com/user/common-build-problems/
Создайте свой собственный временный идентификатор сборки
Просмотрите журнал сборки , откройте кнопку «Показать больше» для РАБОЧЕЙ ИНФОРМАЦИИ и найдите строку INSTANCE, вставьте ее здесь и запустите (замените тег после двоеточия на новейший доступный) :
Запустите безголовый сервер
Запустите подключенный клиент
Запустить работу
Теперь вы находитесь в своей среде Travis. Беги,
su - travis
чтобы начать.Этот шаг хорошо определен, но он более утомительный и ручной. Вы найдете каждую команду, которую Трэвис выполняет в среде. Чтобы сделать это, ищите все в правом столбце, который имеет тег, как 0.03s.
С левой стороны вы увидите актуальные команды. Запустите эти команды по порядку.
Результат
Сейчас хорошее время для запуска
history
команды. Вы можете перезапустить процесс и воспроизвести эти команды, чтобы запустить тот же тест для обновленной базы кода.ssh-keygen -t rsa -b 4096 -C "YOUR EMAIL REGISTERED IN GITHUB"
тогдаcat ~/.ssh/id_rsa.pub
и нажмите здесь , чтобы добавить ключgit pull
изнутри докера загрузить коммиты из вашего dev-бокса, прежде чем отправлять их на GitHub.travis.yml
.источник
instance:
я не вижу действительного пути к изображению докера, просто что-то вродеtravis-ci-garnet-trusty-1512502259-986baf0
. Пробовалtravisci/ci-garnet:$INSTANCE
иtravisci/$INSTANCE
- не работает, не могу найти изображение. Также просто взятие постфикса (то естьtravisci/ci-garnet:packer-1512502259-986baf0
) не работало.travisci/ci-garnet:packer-1512502276-986baf0
изображение, которое предлагается в документах Travis . Этот доступен, но устарел. Например, CMake намного старше, чем тот, что доступен в Travis. За последние шесть месяцевci-garnet
в Docker Hub не было загружено ни одной новой версии , тогда как ранее в месяц было много обновлений.sudo: required
установлен? В моей текущей сборке я вижу,travis-ci-sardonyx-xenial-1547455603-2c98a19
что я могу сопоставить с travisci / ci-sardonyx: packer-1547455648-2c98a19Travis-ci предлагает новую контейнерную инфраструктуру, которая использует докер. Это может быть очень полезно, если вы пытаетесь устранить неполадки сборки travis-ci, воспроизводя ее локально. Это взято из Travis CI в документации .
Устранение неполадок локально в образе Docker
Если у вас возникают проблемы с поиском точной проблемы в сборке, это часто помогает запустить сборку локально. Для этого вам нужно использовать нашу контейнерную инфраструктуру (т.е. иметь
sudo: false
в своем.travis.yml
) и знать, какой образ Docker вы используете в Travis CI.Запуск образа Docker на основе контейнера локально
Выберите изображение в Docker Hub . Если вы не используете язык изображения, выберите
ci-ruby
. Откройте терминал и запустите интерактивный сеанс Docker, используя URL-адрес изображения:Переключиться на
travis
пользователя:/
папку с изображением.источник
make test
.> Manually install any dependencies
Это звучит как хороший способ получить результаты, которые не соответствуют обычным сборкам Travis.Manually tun your Travis CI build command
... Как, что? Как? Что это? У меня есть.travis.yml
файл. Я пробовал travis-build, но это тупик.ОБНОВЛЕНИЕ: у меня теперь есть полный ответ «под ключ», см. Https://stackoverflow.com/a/49019950/300224 . Потребовалось всего 3 года, чтобы понять!
В соответствии с документацией Travis: https://github.com/travis-ci/travis-ci, существует множество проектов, которые сговорются о предоставлении веб-службы Travis CI, которую мы знаем и любим. Следующее подмножество проектов позволяет использовать локальную
make test
функциональность.travis.yml
в вашем проекте:Трэвис-сборка
travis-build создает скрипт сборки для каждой работы. Он берет конфигурацию из
.travis.yml
файла и создаетbash
скрипт, который затем запускает travis-worker в среде сборки.Travis-поваренные книги
travis-cookbooks содержит поваренные книги Chef , которые используются для обеспечения среды сборки.
Трэвис-работник
travis-worker отвечает за запуск сценариев сборки в чистой среде. Он направляет вывод журнала в travis-logs и передает обновления состояния (начало / завершение сборки) в travis-hub.
(Другие подпроекты отвечают за связь с GitHub, их веб-интерфейс, электронную почту и их API.)
источник
make test
функцию, был бы великолепен. Прокомментируйте, если вы хотите поработать над этим со мной.travis-build
? В репо нет инструкций.Подобно Скотту МакЛауду, но также генерирует скрипт bash для запуска шагов из .travis.yml.
Локальное устранение неполадок в Docker с помощью сгенерированного сценария Bash
источник
travis # to create ~/.travis
. Трэвису нужна команда для выполнения.sudo - travis
должно бытьsu - travis
./home/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- travis/support (LoadError)
cd ~/.travis/travis-build/ bundle install bundler add travis bundler binstubs travis cd <REPO_YOU_WANT_TO_RUN_COMPILE_IN> ~/.travis/travis-build/bin/travis compile
Используйте wwtd (что бы сделал travis) ruby gem для запуска тестов на вашей локальной машине примерно так же, как они будут работать на travis.
Он будет воссоздавать матрицу сборки и запускать каждую конфигурацию, что прекрасно подходит для проверки работоспособности перед нажатием.
источник
ruby
поддержкаtl; dr Использовать изображение, указанное на https://docs.travis-ci.com/user/common-build-problems/#troublesho-locally-in-a-docker-image в сочетании с https://github.com/ travis-ci / travis-build # использовать-как-дополнение-для-travis-cli .
РЕДАКТИРОВАТЬ 2019-12-06
#troubleshooting-locally-in-a-docker-image
Был заменен раздел, в#running-builds-in-debug-mode
котором также описано, как выполнить SSH для задания, работающего в режиме отладки .РЕДАКТИРОВАТЬ 2019-07-26
#troubleshooting-locally-in-a-docker-image
раздел больше не является частью документов; вот почемуХотя, это все еще в истории git: https://github.com/travis-ci/docs-travis-ci-com/pull/2193 .
Ищите (довольно старые, не могли найти новые) версии изображений по адресу: https://travis-ci.org/travis-ci/docs-travis-ci-com/builds/230889063#L661 .
Я хотел проверить, почему один из тестов в моей сборке не прошел с ошибкой, которую я не получаю локально.
Работал.
На самом деле работало использование изображения, указанного в разделе « Устранение неполадок локально» на странице документации Docker Image . В моем случае это было
travisci/ci-garnet:packer-1512502276-986baf0
.Мне удалось добавить
travise compile
следующие шаги, описанные на https://github.com/travis-ci/travis-build#use-as-addon-for-travis-cli .Все
.travis.yml
было выполнено, как и ожидалось (зависимости установлены, тесты выполнены, ...).Обратите внимание, что перед запуском
bash ci.sh
мне пришлось перейти--branch\=\'\'\
на--branch\=master\
(см. Вторуюsed -i ...
команду) вci.sh
.Если это не сработает, команда ниже поможет определить номер строки назначения, и вы можете редактировать строку вручную.
Не сработало
Последовал за принятым ответом на этот вопрос, но не нашел изображение (
travis-ci-garnet-trusty-1512502259-986baf0
), упомянутоеinstance
на https://hub.docker.com/u/travisci/ .Построить рабочие версии указывает на Трэвис-CI / работника фиксации и его Трэвис-работник установить ссылки
quay.io/travisci/
как реестр изображения. Так я и попробовал.Определенно не верный (Ubuntu 14.04) и не маленький тоже.
источник
http_proxy
среду радиgit clone
. По умолчаниюgit clone
выбрасываетgnutls_handshake
исключение. Таким образом, я хочу установить конкретнуюbundler
версию,gem install bundler -v 1.16.6
потому чтоbundler binstubs travis
ранее не удалось. Улучшите требуемуюbundler
версию, запустив `bundle info travis`travis.yml
в исполняемый скрипт оболочки. Красиво сделано! Единственным улучшением этого является механизм, с помощью которого можно избежать замены строки вручную при указании ветви, из которой нужно строить.sed
команду, которая обращается к вашей точке зрения. Смотрите команду перед запускомbash ci.sh
.Вы можете попробовать Trevor , который использует Docker для запуска вашей сборки Travis.
Из его описания:
источник
Я не уверен, какова была ваша первоначальная причина, по которой Тревис работал локально, если вы просто хотели поиграть с ним, то перестаньте читать здесь, поскольку это не имеет значения для вас.
Если у вас уже есть опыт работы с Travis и вы хотите получить такой же опыт в своем центре обработки данных, читайте дальше.
С декабря 2014 года Travis CI предлагает локальную версию Enterprise.
http://blog.travis-ci.com/2014-12-19-introducing-travis-ci-enterprise/
Ценообразование также является частью статьи:
источник
whackamole
является копией проекта, над которым я действительно хочу работать, и я могу настроить временное задание на сборку Travis для этого проекта, в то время как я решаю некоторые проблемы автоматизации сборки. Как только я добьюсь этого, перебросьте десятки коммитов «упс» и подтолкните к настоящему репозиторию GitHub. (И, вероятно, удалитеwhackamole
Возможен SSH к среде Travis CI через хост bounce. Эта функция не встроена в Travis CI, но ее можно реализовать с помощью следующих шагов.
travis
пользователя и убедитесь, что вы можете подключиться к нему по SSH.Поместите эти строки в свой
script:
раздел.travis.yml
(например, в конце).Где
$bouncehostip
находится IP / хост вашего bounce-хоста и$sshpassword
ваш определенный пароль SSH. Эти переменные могут быть добавлены как зашифрованные переменные .Нажмите изменения. Вы должны иметь возможность установить SSH-соединение с вашим bounce-хостом.
Источник: Shell в Travis CI Build Environment .
Вот полный пример:
Смотрите:
c-mart/travis-shell
на GitHub .Смотрите также: Как воспроизвести среду сборки travis-ci для отладки
источник