No description
Find a file
2025-12-05 20:56:18 -03:00
senha exemplo de makefile para Go 2025-12-05 20:56:18 -03:00
.gitignore Initial commit 2025-12-05 20:39:54 -03:00
LICENSE Initial commit 2025-12-05 20:39:54 -03:00
README.md exemplo de makefile para Go 2025-12-05 20:56:18 -03:00

🧰 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 tidy
  • go 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! 🚀