What we need?
Golang version 1.13 or above
GOPRIVATEintroduced to go module since 1.13
- multi section of
GOPROXYintroduced to go module since 1.13
- Certainly, We need it host our private code. I assumed your gitlab running happily at http://foo.bar.com
go.mod file for Library Package
Init a package named
go mod init foo.bar.com/group/project
- Write some bugs with few lines of functional code, then commit and push.
Release your package with Semantic Version
git tag -a v1.0.0 -m "release v1.0.0 for semantic version testing"
git push --tags
- Checkout your hard work on Gitlab.
Use Private Library Package For Versioning
Make sure your
GOPROXYworks as well as we expect.
Be careful :
GOPRIVATE=foo.bar.commeans : all Packages from
foo.bar.comwas private package, go build will skip checksum cuz we trust our teammate. lol.
- You may have your own setting of
GOPROXY, always make sure
directsection was placed EXACTLY at the end of this line. For now, our configuration means : If go build can't find package
https://goproxy.io/group/projectThen it will try to find it via
Access your git repo
git config --global url."firstname.lastname@example.org:".instead of "http://foo.bar.com/"
SSHpublic key on gitlab, You can easily make it via Google.
Pull the Trigger
Import library package and use it
go get -u -v email@example.com
go build -v .
Migrate to Docker
Use key pair for Docker build
ssh-keygen -f /path/to/build-key
Change your docker file