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
-
-
Running Gitlab
- Certainly, We need it host our private code. I assumed your gitlab running happily at http://foo.bar.com
Configure go.mod file for Library Package
-
Init a package named
group/projectgo 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
GOPRIVATEandGOPROXYworks as well as we expect.GOPRIVATE=foo.bar.comGOPROXY=https://goproxy.io,directBe careful :
-
GOPRIVATE=foo.bar.commeans : all Packages fromfoo.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 suredirectsection was placed EXACTLY at the end of this line. For now, our configuration means : If go build can't find packagefoo.bar.com/group/projectviahttps://goproxy.io/group/projectThen it will try to find it viahttp://foo.bar.com/group/project
-
-
Access your git repo
-
Use
SSHinstead ofHTTPgit config --global url."git@foo.bar.com:".instead of "http://foo.bar.com/" - Setup
SSHpublic key on gitlab, You can easily make it via Google.
-
-
Pull the Trigger
-
Import library package and use it
go get -u -v foo.bar.com/group/project@v1.0.0go build -v .
-
Migrate to Docker
-
Use key pair for Docker build
ssh-keygen -f /path/to/build-keyChange your docker file
COPY/path/to/build-key` ~/.ssh/id_rsaSetup
SSHpublic key/path/to/build-key.pubon gitlab.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。