Instalar goimports
go get golang.org/x/tools/cmd/goimports
Agregar GOPATH al ~/.bash_profile
export GOPATH=$(go env GOPATH)
export PATH="$GOPATH/bin:$PATH"
Instalar paquetes binarios, ejemplo con mockgen
Go version < 1.16
GO111MODULE=on go get github.com/golang/mock/mockgen@v1.6.0
Go 1.16+
go install github.com/golang/mock/mockgen@v1.6.0
Recolectar profile del heap y visualizar
curl -sK -v http://localhost:6060/debug/pprof/heap > /tmp/heap.out
go tool pprof -http 0.0.0.0:8080 heap.out
Borrar modulos del cache local
go clean --modcache
Reemplazar dependencies con un fork o similar.
Repo someone
version 1.2.3
con repo you
en commit aabbcc
(este hash puede ser una rama).
go mod edit -replace="github.com/someone/repo@v1.2.3=github.com/you/repo@aabbcc"
Después de haber hecho go mod init
y haber agregado dependencies, crear un directorio vendor con una copia local de las dependencies.
go mod vendor
Utilizar el directorio vendor al hacer el build
go mod build -mod=vendor
Al tener el directorio vendor las dependencies ser agregadas al repo para disminuir los tiempos de pipelines al no tener que descargar las dependencies cada vez.
Algo en contra de esta método es que el tamaño del repositorio incrementa, solo depender de logrus agrega 7.8MB al repo.