Я конвертирую примеры ОШИБОК в 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 · рейтинг 1 · jtilly
Я не знаю встроенного способа выборочного создания или отказа от создания виньеток. Мой хак для этого состоял бы в том, чтобы настроить .travis.yml, чтобы сделать следующее:
- Храните исходный код виньетки и вывод виньетки в двух отдельных ветках (например, оставьте вывод на
gh-pages)
- Проверьте сообщение коммита текущей сборки: если оно содержит ключевое слово вроде
BUILD_ALL_VIGNETTES, то соберите и проверьте весь пакет с виньетками и отправьте скомпилированные виньетки в ветку gh-pages.
- Если сообщение фиксации не включает ключевое слово, просмотрите список файлов из текущей фиксации. Удалите все файлы .Rmd в /vignettes, которые не были частью текущего коммита. Затем соберите и проверьте весь пакет с виньетками и запушите скомпилированные виньетки (если есть) в ветку
gh-pages.