All checks were successful
drawio-export/pipeline/head This commit looks good
|
||
---|---|---|
.vscode | ||
build/ci | ||
cmd/drawio-export | ||
pkg/drawio | ||
scripts | ||
.gitignore | ||
CHANGELOG.md | ||
go.mod | ||
go.sum | ||
LICENSE | ||
makefile | ||
README.md |
Go Draw.io Exporter
Автор: Алексей Бадяев aleksei.badiaev@mousesoft.ru
Экспортирует все диаграммы из файла формата Draw.io
.
Для работы необходимо наличие приложения drawio-desktop
.
Разработка
Для удобного редактирования, сборки, отладки и тестирования проекта в локальном окружении программиста необходимо выполнить следующие действия:
- Клонировать репозиторий проекта в папку
$GOPATH/src/git.mousesoft.ru/ms/
. - Установить все Go-пакеты, от которых зависит этот проект (см. следующий раздел).
- Если предполагается формирование отчёта о покрытии кода модульными тестами, то нужно установить необходимые для этого пакеты (см. раздел Тестирование далее).
Структура проекта
Структура дерева файлов проекта соответствует рекомендациям в Standard Go Project Layout:
build
- Сборка и непрерывная интеграция (Continuous Integration, CI).cmd
- Основные приложения проекта. Имя директории для каждого приложения должно совпадать с именем исполняемого файла, который вы хотите собрать.pkg
- Код библиотек, пригодных для использования в сторонних приложениях.scripts
- Скрипты для сборки, установки, анализа и прочих операций над проектом.
Линтеры
Отформатировать все исходные тексты проекта в соответствии со стандартом Go можно командой:
go fmt ./...
В проекте используются следующие линтеры:
- go vet
- errcheck
Команда установки линтера:go install github.com/kisielk/errcheck@latest
. - staticcheck
Команда установки линтера:go install honnef.co/go/tools/cmd/staticcheck@latest
. - usestdlibvars
Команда установки линтера:go install github.com/sashamelentyev/usestdlibvars@latest
Все линтеры проекта можно запустить командой:
make lint
Компиляция
Все зависимости устанавливаются в папку vendor
командой:
make vendor
Собрать исполняемый файл сервиса можно командой:
make build
После успешного выполнения команды в папке out/bin
в корне проекта появится
исполняемые бинарные файлы.
Версия продукта
Проект версионируется в соответствии с документом
Семантическое Версионирование 2.0.0.
Наименование версии продукта считывается во время сборки проекта из переменной
окружения VERSION
. Если при сборке переменная окружения VERSION
не задана,
то номер версии формируется автоматически из системы контроля версий на основании
последнего тэга, наличия коммитов после него и текущего состояния репозитория
командой:
git describe --always --tags --dirty
При этом если проект собирается из ветки выпуска вида release/1.2.3
, то
то версия принимает вид v1.2.3RC
(что означает "Release Candidate").
Для получения версии приложения необходимо запустить его с параметром --version
:
drawio-export --version
Тестирование
Статический анализ всех исходных текстов проекта можно выполнить командами:
go vet ./...
Модульные тесты проекта можно запустить командой:
make test
Отчёт о тестировании
Отчёт о выполнении тестов можно получить, запустив в папке программы команду:
make test
Для получения отчёта о выполнении тестов в формате JUnit XML необходимо установить инструмент:
go install github.com/jstemmer/go-junit-report@latest
Получить отчёт можно командой:
EXPORT_RESULT=true make test
После успешного выполнения команды появится файл out/junit-report.xml
с отчётом в формате JUnit.
Покрытие кода тестами
Для получения отчётов о покрытии кода тестами необходимо установить следующие инструменты:
go install github.com/axw/gocov/gocov@latest
go install github.com/matm/gocov-html/cmd/gocov-html@latest
go install github.com/AlekSi/gocov-xml@latest
Для получения отчёта о покрытии проекта тестами в консоли нужно выполнить команду:
make coverage
Получить отчёт о покрытии кода тестами в формате HTML можно командой:
EXPORT_RESULT=true make coverage
После успешного выполнения этой команды файл out/coverage.html
будет содержать
отчёт о покрытии кода проекта модульными тестами в формате HTML.
Получить отчёт о покрытии кода тестами в формате XML можно командой:
EXPORT_RESULT=true COVERAGE_FORMAT=xml make coverage
После успешного выполнения этой команды файл out/coverage.xml
будет содержать
отчёт о покрытии кода проекта модульными тестами в формате XML.