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

Я преобразую примеры ошибок в 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

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

1 ответ

Решение

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

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