Semantic Versioning on Private Library Package for Golang 1.13
source link: https://www.tuicool.com/articles/miAj2qq
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
What we need?
-
Golang version 1.13 or above
GOPRIVATE GOPROXY
-
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/project
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
GOPRIVATE
andGOPROXY
works as well as we expect.GOPRIVATE=foo.bar.com
GOPROXY=https://goproxy.io,direct
Be careful :
-
GOPRIVATE=foo.bar.com
means : all Packages fromfoo.bar.com
was private package, go build will skip checksum cuz we trust our teammate. lol. -
You may have your own setting of
GOPROXY
, always make suredirect
section was placed EXACTLY at the end of this line. For now, our configuration means : If go build can't find packagefoo.bar.com/group/project
viahttps://goproxy.io/group/project
Then it will try to find it viahttp://foo.bar.com/group/project
-
-
Access your git repo
-
Use
SSH
instead ofHTTP
git config --global url."[email protected]:".instead of "http://foo.bar.com/"
-
Setup
SSH
public 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/[email protected]
go build .
- EOF
-
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK