Doxygen && gh-pages

У гитхаба есть классная возможность прикреплять к репозиториям html странички. И если конструктор сайтов в стиле yandex.narod’а времен начала нулевых интересует мало кого, то вот постить туда html сгенеренный doxygen’ом — милое дело.
Другое дело, что хранить историю в ветке gh-pages нельзя, иначе она будет распухать c каждым коммитом в основную репу. Да и не нужно ее фиксировать. Потому правильным тут будет:

  • Создавать чистый бранч, куда коммитить сгенеренные доки
  • Делать push с —force, чтобы при этом выкидывать прошлую историю для бранча gh-pages
  • Хочется делать это прямо из дерева исходников, не переключаясь на бранч с документацией
  • Потенциально интегрировать это с CI/Jenkins: Прошел билд, юнит-тесты и статический анализ — бампаем документацию

Делается проще, чем звучит. Ниже, чтобы не забыть, мой сниплет для этого безобразия:

doxygen: 
	-rm -Rfv doxygen/
	( cat Doxyfile ; echo "PROJECT_NUMBER=0.1" ) | doxygen 
	cd doxygen/html;\
	rm -Rfv .git;\
	git init .; git checkout --orphan gh-pages;\
	git add *;\
	git commit -m "documentation-for-gh-pages";\
	git remote add origin git@github.com:MY_GITHUB_USERNAME/MY_GITHUB_PROJECT.git;\
	git push -u -f origin gh-pages