Skip to content

Репозиторий с инструкциями по настройке `golangci-lint`

Notifications You must be signed in to change notification settings

s-shpak/praktikum-golangci-lint

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

В этом файле вы найдет инструкции по настройке и запуску 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 из этой папки в свой проект (либо перенести правила из него в свой Makefile).

Для запуска golangci-lint вызовите:

make golangci-lint-run

Для удаления всех сгенерированный golangci-lint файлов вызовите:

make golangci-lint-clean

Git pre-commit hook

Код для добавления линтинга в pre-commit hook находится в golangci-lint-pre-commit.sh.

Настройка GitHub Actions

Скопируйте содержимое workflows/golangci-lint.yml в .github/workflows/, а .golangci-lint.yml в корень вашего репозитория.

About

Репозиторий с инструкциями по настройке `golangci-lint`

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published