В этом файле вы найдет инструкции по настройке и запуску golangci-lint
в вашем проекте. Инструкции протестированы на Ubuntu 22.04
, на Linux и Mac они должны работать.
Если вы работаете на Windows, то рекомендую вам начать использовать WSL (https://learn.microsoft.com/en-us/windows/wsl/install).
Перед началом работы убедитесь, что у вас установлены локально:
Создайте в директории проекта папку golangci-lint
и добавьте ее в .gitignore
:
mkdir -p golangci-lint
В папке golangci-lint
будут храниться:
- отчеты линтеров (проблемы, найденные в вашем коде)
- файлы с ошибками запуска
golangci-lint
- кэш
golangci-lint
(для ускорения работы инструмента)
Для запуска golangci-lint
мы воспользуемся:
- официальным docker-образом инструмента
- файлом конфигурации
.golangci.yml
(лежит в корне этого проекта)
Скопируйте .golangci.yml
в корень вашего проекта и запустите golangci-lint
при помощи команды:
docker run --rm \
-v $(pwd):/app \
-v $(pwd)/golangci-lint/.cache/golangci-lint/v1.57.2:/root/.cache \
-w /app \
golangci/golangci-lint:v1.57.2 \
golangci-lint run \
-c .golangci.yml \
> ./golangci-lint/report-unformatted.json
Сейчас получившийся файл (./golangci-lint/report-unformatted.json
) неотформатирован. Для упрощения чтения отформатируйте его при помощи jq
(см. инструкции по установке здесь: https://jqlang.github.io/jq/download/):
cat ./golangci-lint/report-unformatted.json | jq > ./golangci-lint/report.json
После чего оригинальный файл можно удалить:
rm ./golangci-lint/report-unformatted.json
Вы можете скопировать Makefile
из этой папки в свой проект (либо перенести правила из него в свой Makefile
).
Для запуска golangci-lint
вызовите:
make golangci-lint-run
Для удаления всех сгенерированный golangci-lint
файлов вызовите:
make golangci-lint-clean
Код для добавления линтинга в pre-commit hook находится в golangci-lint-pre-commit.sh
.
Скопируйте содержимое workflows/golangci-lint.yml
в .github/workflows/
, а .golangci-lint.yml
в корень вашего репозитория.