-
Notifications
You must be signed in to change notification settings - Fork 684
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Autobuild with Travis + Docker image #152
base: master
Are you sure you want to change the base?
Conversation
- docker | ||
before_install: | ||
- sudo apt-get update | ||
- sudo apt-get -o Dpkg::Options::="--force-confnew" install -y docker-engine |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
у трависа стоит старый докер, а dockerfile использует новые директивы, поэтому надо обновить в образе, благо это быстро делается
Как тестить этот PR? Как я понимаю, что происходит:
Я прав? |
1.1. Сервер как таковой он не даёт напрямую, но суть примерно такая же. На их облаке предоставляется возможность запустить свой билд за просто так. Пока тут очевидным образом можно потестировать только докерную часть. Скопировать себе в корень Dockerfile и provision дирку, запустить docker run -v `pwd`:/data phd-latex В результате в текущей дирке должна появиться скомпиленая пдфка. |
Я не уверен, что запускать Docker в сборках на Travis CI — хорошая идея. Стоит рассмотреть вариант контейнерных сборок ( |
По мне - это как раз хорошая идея и получилась.
С кэшированием тоже для меня не всё очевидно. Если есть кэш, то должна быть и какая-то инвалидация. Судя по докам, автоматической её нет вообще никакой. Если вдруг трависный билд зафейлится из-за того, что версия пакета понадобится другая или ещё какое драматическое изменение, не отраженное в кеше, то лечить это придётся принудительным стиранием кэша руками владельца репы, что не всегда может быть вариантом. Итого, я не уверен, что это в самом деле лучше. Сокращая текущие 5 минут до условной минуты, мы получаем потенциальные проблемы с кэшем и поддержкой скриптов для provision. Не думаю, что так уж высока цена времени билда на этом проекте. |
Можно скрипт написать, наверное, который будет парсить лог (grep наверное) после команды |
Это можно и в make запихнуть, раз уж он есть, только я в эту магию немного не умею |
@AndreyAkinshin, может быть, сделать «организацию», например «Russian-LaTeX-projects»? Затем передать туда этот репозиторий как «PhD-dissertation-template-ru», чтобы можно было настроить туда тревис для непрерывной интеграции и тестирования коммитов, не задействую твой личный token для тревиса. |
Возобновлю обсуждение. Проблема использования TeX Live в Travis CI состоит в устаревших пакетах. Смена окружения не помогает. Я собрал работоспособную конфигурацию на основе Docker для аналогичного репозитория. Ранее это казалось мне неудачной идеей. В свою очередь, эта идея кажется мне менее неудачной, чем устанавливать LaTeX из сторонних источников.
Без особенных проблем можно адаптировать конфигурацию под этот репозиторий. |
Господа, вам стоит обратить внимание также на Tectonic: это штуковина, которая умеет ставить пакеты по требованию из снапшотов (наподобие Haskell Stack) и сама по себе является XeLaTeX с плюшками. Я попробовал собрать ей свой талмуд (который составлял на основе очень давней версии сего репозитория), и всё завелось из коробки прям без вопросов. Возможно, это стоит рассмотреть как более легковесный вариант для воспроизводимых сборок LaTeX-документов. |
PSCyr можно устанавливать из deb пакета. https://blog.amet13.name/2014/10/pscyr.html У меня все заработало. |
ПР для обсуждения предложенных изменений.
Сделан docker образ (файлы Dockerfile + provision дирка) для компиляции проекта в конфигурации pdflatex + biber - PsCyr. Это совпало по времени с TexLive and Docker #146, но, как и у всего в этой стране, у меня получился "свой особенный путь". Вместо использования встроенных убунтовых пакетов я установил всё из архива texlive. Для того, чтобы поэкономить место, я установил только минимально необходимый набор, а все остальные пакеты устанавливаю в скрипте. С одной стороны это гарантирует всегда наличие распоследних версий пакетов; это поощряется авторами texlive из-за установки без суперправ; это приведёт к значительно более быстрой и экономной сборке билда, чем установка всего подряд. С другой стороны, придется список пакетов обновлять при добавлении зависимостей, иначе травис зафейлится.
Использовать образ очень просто - надо в дирке с проектом запустить
docker run -v `pwd`:/data phd-latex
Сделана проверка сборки с помощью докер образа через travis. Тут единственное, чем я могу помочь, это предоставить шаблон .travis.yml. Потом его все равно нужно под репу затачивать
После обсуждения я сожму коммиты, обновлю чего надо и сделаю новый реквест