No description
| senha | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
🧰 GolangCI-Lint + Makefile para Projetos Go
Este repositório contém um exemplo de configuração profissional para projetos Go, incluindo:
- Instalação e uso do golangci-lint
- Makefile com comandos úteis para build, testes e otimização
📦 Instalação do GolangCI-Lint
Linux
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
Verificar instalação
golangci-lint version
🛠 Makefile — Comandos e Descrição
Variáveis principais
| Variável | Descrição |
|---|---|
BINARY |
Nome do binário gerado |
DIST |
Diretório onde os binários serão salvos |
PKG |
Pacote principal do projeto (./...) |
📜 Targets Disponíveis
▶ Execução sem build
make run
Executa go run main.go.
🧪 Testes
make test
Executa testes com saída detalhada.
⚙ Build padrão
make build
Gera dist/app com go build simples.
🚀 Build otimizado (produção)
make build-release
- Remove símbolos de debug (
-ldflags="-s -w") - Remove caminhos de origem (
-trimpath)
Resultado: binário menor.
🐧 Cross-compile Linux
make linux
Gera binário dist/app-linux para Linux x86_64.
📦 Dependências
make deps
Executa:
go mod tidygo mod download
Mantém módulos organizados e baixados.
🔍 Linter
make lint
Executa o golangci-lint no projeto inteiro.
Necessário instalar:
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
📏 Tamanho dos binários
make size
Lista arquivos dentro do dist/ com informações de tamanho.
🧹 Limpeza total
make clean
Remove:
- diretório
dist/ - cachê do Go
- cachê de testes
rm -rf dist
go clean -cache -testcache -modcache
✔ Observações importantes
- O diretório
dist/é criado automaticamente se não existir - Nenhum build sobrescreve arquivos fora de
dist/ - Todos os comandos são idempotentes (podem ser executados repetidamente sem erro)
📄 Licença
Livre para uso, modificação e compartilhamento.
Bom código! 🚀