Выборочное подавление построения виньетки

Я конвертирую примеры ОШИБОК в https://github.com/stan-dev/example-models/tree/master/bugs_examples в пакет только для примеров, с виньеткой .Rmd для каждого примера. Полный пакет будет построен на TravisCI.

Создание виньетки для одного примера требует не менее 2 минут, поэтому для отладочных сборок должна быть возможность включать/исключать отдельные виньетки. Я знаю, что могу запускать отдельные прогоны Knit вручную, но иногда требуется запуск всей сборки.

В моем текущем обходном пути файлы Rmd перемещаются в другой каталог, но решение не очень хорошее. Я ищу что-то вроде этого:

---
title: "Rats: a normal hierarchical model"
date: "`r Sys.Date()`"
build: "`r Sys.getenv("build_bugs_rats") != ''`"
output: rmarkdown::html_vignette

Другие идеи приветствуются.


person Dieter Menne    schedule 13.08.2015    source источник


Ответы (1)


Я не знаю встроенного способа выборочного создания или отказа от создания виньеток. Мой хак для этого состоял бы в том, чтобы настроить .travis.yml, чтобы сделать следующее:

  • Храните исходный код виньетки и вывод виньетки в двух отдельных ветках (например, оставьте вывод на gh-pages)
  • Проверьте сообщение коммита текущей сборки: если оно содержит ключевое слово вроде BUILD_ALL_VIGNETTES, то соберите и проверьте весь пакет с виньетками и отправьте скомпилированные виньетки в ветку gh-pages.
  • Если сообщение фиксации не включает ключевое слово, просмотрите список файлов из текущей фиксации. Удалите все файлы .Rmd в /vignettes, которые не были частью текущего коммита. Затем соберите и проверьте весь пакет с виньетками и запушите скомпилированные виньетки (если есть) в ветку gh-pages.
person jtilly    schedule 13.08.2015