faz build e release the software escrito em Go > você configura uma vez via yaml > e faz uma release quando quiser com git tag + goreleaser release 3 — Go Community Monthly @ Hacktoberfest Brasil - October, 2021 - carlosbecker.dev/talks/
GOOS, GOARCH, GOARM, etc > cria macOS universal binaries > cria arquivos em diversos formatos pra cada plataforma 4 — Go Community Monthly @ Hacktoberfest Brasil - October, 2021 - carlosbecker.dev/talks/
assina arquivos > upload dos arquivos para artifactory, Fury, blob, ou qualquer outra coisa que aceite requests PUT 6 — Go Community Monthly @ Hacktoberfest Brasil - October, 2021 - carlosbecker.dev/talks/
changelog) > roda "custom publishers" (aka shell scripts) > anuncia as releases em diversos lugares 7 — Go Community Monthly @ Hacktoberfest Brasil - October, 2021 - carlosbecker.dev/talks/
GitHub Actions, Azure Pipelines, CircleCI, Google CloudBuild, GitLab CI and many others... Exemplos: goreleaser.com/ci 8 — Go Community Monthly @ Hacktoberfest Brasil - October, 2021 - carlosbecker.dev/talks/
create caarlos0/example-hacktoberfest -y -l MIT git pull origin main 13 — Go Community Monthly @ Hacktoberfest Brasil - October, 2021 - carlosbecker.dev/talks/
binários sejam compilados a partir do source que esta no proxy.golang.org. Com isso, o binário pode ser verificado com go versiom -m, mostrando os checksums do seu repo, dependencias e versao do Go usada. 21 — Go Community Monthly @ Hacktoberfest Brasil - October, 2021 - carlosbecker.dev/talks/
coisas no nosso main usando runtime/ debug: package main import ( "fmt" "runtime/debug" ) func main() { fmt.Println("hello golang community") if info, ok := debug.ReadBuildInfo(); ok { fmt.Println(info.Main.Path, info.Main.Version, info.Main.Sum) } } 23 — Go Community Monthly @ Hacktoberfest Brasil - October, 2021 - carlosbecker.dev/talks/
compilamos por a partir do proxy: go build . go version -m example-hacktoberfest ./example-hacktoberfest 24 — Go Community Monthly @ Hacktoberfest Brasil - October, 2021 - carlosbecker.dev/talks/
a mesma coisa: git commit -am 'ci: go mod proxy' git tag `svu n --force-patch-increment` git push origin HEAD --tags goreleaser release --rm-dist go version -m ./dist/example-hacktoberfest_darwin_amd64/example-hacktoberfest ./dist/example-hacktoberfest_darwin_amd64/example-hacktoberfest 25 — Go Community Monthly @ Hacktoberfest Brasil - October, 2021 - carlosbecker.dev/talks/
Intel em um único binário. PS: go version -m não funciona nesse binário. 27 — Go Community Monthly @ Hacktoberfest Brasil - October, 2021 - carlosbecker.dev/talks/
git tag `svu n --force-patch-increment` git push origin HEAD --tags goreleaser release --rm-dist tree dist 32 — Go Community Monthly @ Hacktoberfest Brasil - October, 2021 - carlosbecker.dev/talks/
docker imgs' git tag `svu n --force-patch-increment` git push origin HEAD --tags goreleaser release --rm-dist 37 — Go Community Monthly @ Hacktoberfest Brasil - October, 2021 - carlosbecker.dev/talks/
usar ao GPG, e também consegue assinar imagens e manifestos Docker! O primeiro passo é gerar as chaves: cosign generate-key-pair 40 — Go Community Monthly @ Hacktoberfest Brasil - October, 2021 - carlosbecker.dev/talks/
'ci: sign' git tag `svu n --force-patch-increment` git push origin HEAD --tags COSIGN_PWD=asd goreleaser release --rm-dist 42 — Go Community Monthly @ Hacktoberfest Brasil - October, 2021 - carlosbecker.dev/talks/
comando cosign e os checksums com o comando sha256sum: cosign verify-blob -key cosign.pub \ -signature dist/checksums.txt.sig \ dist/checksums.txt cd dist; sha256sum --ignore-missing -c checksums.txt; cd - 43 — Go Community Monthly @ Hacktoberfest Brasil - October, 2021 - carlosbecker.dev/talks/
corrigir, feature pra implementar, PR pra revisar, pergunta pra responder... ! > Toda ajuda é muito bem-vinda! > github.com/goreleaser 47 — Go Community Monthly @ Hacktoberfest Brasil - October, 2021 - carlosbecker.dev/talks/