From 865fb1db89ee663268f1c1f3ffe613320b4e069b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B0=D0=BB=D0=B5=D1=80=D0=B8=D0=B8=CC=86=20=D0=A1?= =?UTF-8?q?=D1=82=D0=B0=D0=B4=D1=87=D0=B5=D0=BD=D0=BA=D0=BE?= Date: Mon, 29 Aug 2022 16:01:34 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B0=D1=87=D0=B0=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D1=8B=D0=B9=20=D0=B8=D0=BC=D0=BF=D0=BE=D1=80=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 13 +++++++++++++ go.mod | 13 +++++++++++++ go.sum | 26 ++++++++++++++++++++++++++ vars.go | 33 +++++++++++++++++++++++++++++++++ 4 files changed, 85 insertions(+) create mode 100644 README.md create mode 100644 go.mod create mode 100644 go.sum create mode 100644 vars.go diff --git a/README.md b/README.md new file mode 100644 index 0000000..88db4a0 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +Библиотека используется для автоматического версионирования GO-приложения с использованием переменных gitlab + +В dockerfile надо изменить строку билда на такую: +``` +RUN go build -ldflags "-X github.com/PCManiac/compile_vars.version=${CI_PIPELINE_IID} -X github.com/PCManiac/compile_vars.build_time=`date +%FT%T%z`" -o server ./... +``` + +Ну и в .gitlab-ci.yml собирать докер с подстановкой переменных +``` +- docker build --build-arg CI_PIPELINE_IID="$CI_PIPELINE_IID" --build-arg GITLAB_TOKEN="$CI_JOB_TOKEN" --pull -t "$CI_REGISTRY_IMAGE" . +``` + +При инициализации модуля в log будет добавлена строка с номером версии и временем билда. При необходимости эти значения также можно получить с помощью функций GetVersion() и GetBuildTime() \ No newline at end of file diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..7f6e383 --- /dev/null +++ b/go.mod @@ -0,0 +1,13 @@ +module github.com/PCManiac/compile_vars + +go 1.17 + +require ( + github.com/PCManiac/logrus_init v0.0.0 + github.com/sirupsen/logrus v1.9.0 +) + +require ( + github.com/caarlos0/env/v6 v6.10.0 // indirect + golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..de3d42d --- /dev/null +++ b/go.sum @@ -0,0 +1,26 @@ +github.com/PCManiac/logrus_init v0.0.0 h1:sn8aQyHLmN/AMTkZfKCQo4mOB5Ckhs+FL85ygNybyMw= +github.com/PCManiac/logrus_init v0.0.0/go.mod h1:mDbCY64MUIrl+gcI37TQGpb22ADZlY8WBJ6tR2pteqk= +github.com/caarlos0/env/v6 v6.10.0 h1:lA7sxiGArZ2KkiqpOQNf8ERBRWI+v8MWIH+eGjSN22I= +github.com/caarlos0/env/v6 v6.10.0/go.mod h1:hvp/ryKXKipEkcuYjs9mI4bBCg+UI0Yhgm5Zu0ddvwc= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20211109184856-51b60fd695b3/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 h1:0A+M6Uqn+Eje4kHMK80dtF3JCXC4ykBgQG4Fe06QRhQ= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/vars.go b/vars.go new file mode 100644 index 0000000..d0df2fb --- /dev/null +++ b/vars.go @@ -0,0 +1,33 @@ +package compile_vars + +import ( + _ "github.com/PCManiac/logrus_init" + log "github.com/sirupsen/logrus" +) + +var ( + version string + build_time string +) + +func init() { + if version == "" { + version = "not set" + } + if build_time == "" { + build_time = "not set" + } + + log.WithFields(log.Fields{ + "version": version, + "build_time": build_time, + }).Info("Initializing.") +} + +func GetVersion() string { + return version +} + +func GetBuildTime() string { + return build_time +}