Skip to content

Instantly share code, notes, and snippets.

@blockspacer
Forked from Neisoweli/REPORT.md
Created June 5, 2020 08:42
Show Gist options
  • Save blockspacer/312a8a952b79bdfe15e6f35340be9df7 to your computer and use it in GitHub Desktop.
Save blockspacer/312a8a952b79bdfe15e6f35340be9df7 to your computer and use it in GitHub Desktop.
Lab07.Report

Laboratory work VII Build Status

Данная лабораторная работа посвещена изучению систем документирования исходного кода на примере Doxygen

$ open https://www.stack.nl/~dimitri/doxygen/manual/index.html

Tasks

  • 1. Создать публичный репозиторий с названием lab07 на сервисе GitHub
  • 2. Выполнить инструкцию учебного материала
  • 3. Ознакомиться со ссылками учебного материала
  • 4. Составить отчет и отправить ссылку личным сообщением в Slack

Tutorial

Задаем переменные окружения и короткие имена для текстовых редакторов

$ export GITHUB_USERNAME=<имя_пользователя>
$ export TEACHER_EMAIL=<[email protected]|[email protected]>
$ alias edit=<nano|vi|vim|subl>
$ alias gsed=sed # for *-nix system

Используем ранее созданный скрипт

$ cd ${GITHUB_USERNAME}/workspace
$ pushd .
$ source scripts/activate

Устанавливаем дистрибутив последней стабильной версии Golang и утилиту по работе с Google Drive

$ wget https://redirector.gvt1.com/edgedl/go/go1.10.linux-amd64.tar.gz
$ tar -C . -xzf go1.9.2.linux-amd64.tar.gz
$ rm -rf go1.9.2.linux-amd64.tar.gz
$ echo "export GOROOT=`pwd`/go" >> scripts/activate # добавляем новые команды в скрипт
$ echo "export GOPATH=`pwd`/go_modules" >> scripts/activate
$ echo "export PATH=\${PATH}:\${GOROOT}/bin" >> scripts/activate
$ echo "export PATH=\${PATH}:\${GOPATH}/bin" >> scripts/activate
$ source scripts/activate # выполняем скрипт 
$ go get github.com/prasmussen/gdrive # скачиваем и устанавливаем утилиту `gdrive`

Скачиваем репозиторий Labs

$ git clone https://github.com/${GITHUB_USERNAME}/Labs projects/lab07
$ cd projects/lab07
$ git checkout -b lab07 # создаем новую ветку

Устанавливаем Doxygen

$ cd ../..
$ git clone https://github.com/doxygen/doxygen.git
$ cd doxygen
$ mkdir build
$ cd build
$ cmake -G "Unix Makefiles" .. # проверяем наличие нужных утилит
$ make
$ make install

Создаем конфигурационый файл для генерации документации к проекту

$ mkdir docs
$ doxygen -g docs/doxygen.conf # 
$ cat docs/doxygen.conf | less

Редактируем конфигурационный файл в соответствии с проектом

$ # устанавливаем наименование проекта
$ gsed -i 's/\(PROJECT_NAME.*=\).*$/\1 print/g' docs/doxygen.conf 
$ # устанавливаем путь к примерам использования
$ gsed -i 's/\(EXAMPLE_PATH.*=\).*$/\1 examples/g' docs/doxygen.conf 
$ # добавляем путь к директории `examples` 
$ gsed -i 's/\(INCLUDE_PATH.*=\).*$/\1 examples/g' docs/doxygen.conf 
$ # устанавливаем тэг, который оповещает doxygen что все объекты документированы
$ gsed -i 's/\(EXTRACT_ALL.*=\).*$/\1 YES/g' docs/doxygen.conf 
$ # устанавливаем список файлов исходных кодов
$ gsed -i 's/\(INPUT *=\).*$/\1 README.md include/g' docs/doxygen.conf 
$ # устанавливаем `README.md` файл как стартовую страницу документации
$ gsed -i 's/\(USE_MDFILE_AS_MAINPAGE.*=\).*$/\1 README.md/g' docs/doxygen.conf
$ # устанавливаем путь к директории, где будет сгенерирована документация
$ gsed -i 's/\(OUTPUT_DIRECTORY.*=\).*$/\1 docs/g' docs/doxygen.conf 

Делаем изменение в файле README.md

$ gsed -i 's/lab06/lab07/g' README.md

Документируем функции print.hpp

$ edit include/print.hpp

Отправляем все изменения в репозиторий

$ git add .
$ git commit -m"added doxygen.conf"
$ git push origin master

Инициализируем сборку проекта с помощью TravisCI

$ travis login --auto
$ travis enable

Генерируем документацию и отправляем все изменения в репозиторий

$ doxygen docs/doxygen.conf
$ ls | grep "[^docs]" | xargs rm -rf # удаляем все, кроме файлов документации
$ mv docs/html/* . && rm -rf docs
$ git checkout -b gh-pages # создаем новую ветку для документации
$ git add .
$ git commit -m"added documentation"
$ git push origin gh-pages
$ git checkout master

Создаем скриншот результатов работы и загружаем его в Google Drive

$ mkdir artifacts && cd artifacts
$ sleep 20s && gnome-screenshot --file artifacts/screenshot.png
# for macOS: $ screencapture -T 20 artifacts/screenshot.png
# open https://${GITHUB_USERNAME}.github.io/lab07/print_8hpp.html
$ gdrive upload screenshot.png
$ SCREENSHOT_ID=`gdrive list | grep screenshot | awk '{ print $1; }'`
$ gdrive share ${SCREENSHOT_ID} --role reader --type user --email ${TEACHER_EMAIL}
$ echo https://drive.google.com/open?id=${SCREENSHOT_ID}

Links

Copyright (c) 2017 Братья Вершинины
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment