From 92ad202bfeeea4c2a52120f03f7f1dd41d809ee5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20=C5=A0ediv=C3=BD?= Date: Sat, 29 Apr 2023 00:12:56 +0200 Subject: [PATCH] Add version to docker build (#301) * add version to build. * update docs. --- .docker/base/Dockerfile | 2 +- .docker/base/Dockerfile.arm | 2 +- .docker/base/Dockerfile.intel | 2 +- .docker/base/Dockerfile.nvidia | 2 +- docs/changelog.md | 3 +++ server/build | 17 ++++++++++++++--- server/neko.go | 35 ++++++++++++++++------------------ 7 files changed, 37 insertions(+), 26 deletions(-) diff --git a/.docker/base/Dockerfile b/.docker/base/Dockerfile index 8d704cf6..dc866aa6 100644 --- a/.docker/base/Dockerfile +++ b/.docker/base/Dockerfile @@ -27,7 +27,7 @@ RUN set -eux; apt-get update; \ # # build server COPY server/ . -RUN go get -v -t -d . && go build -o bin/neko cmd/neko/main.go +RUN ./build # # STAGE 2: CLIENT diff --git a/.docker/base/Dockerfile.arm b/.docker/base/Dockerfile.arm index f8a6fcd7..7c1272ed 100644 --- a/.docker/base/Dockerfile.arm +++ b/.docker/base/Dockerfile.arm @@ -27,7 +27,7 @@ RUN set -eux; apt-get update; \ # # build server COPY server/ . -RUN go get -v -t -d . && go build -o bin/neko cmd/neko/main.go +RUN ./build # # STAGE 2: CLIENT diff --git a/.docker/base/Dockerfile.intel b/.docker/base/Dockerfile.intel index 0c327d17..6bbb97d8 100644 --- a/.docker/base/Dockerfile.intel +++ b/.docker/base/Dockerfile.intel @@ -27,7 +27,7 @@ RUN set -eux; apt-get update; \ # # build server COPY server/ . -RUN go get -v -t -d . && go build -o bin/neko cmd/neko/main.go +RUN ./build # # STAGE 2: CLIENT diff --git a/.docker/base/Dockerfile.nvidia b/.docker/base/Dockerfile.nvidia index d0140560..4ae5f341 100644 --- a/.docker/base/Dockerfile.nvidia +++ b/.docker/base/Dockerfile.nvidia @@ -82,7 +82,7 @@ RUN set -eux; apt-get update; \ # # build server COPY server/ . -RUN go get -v -t -d . && go build -o bin/neko cmd/neko/main.go +RUN ./build # # STAGE 2: CLIENT diff --git a/docs/changelog.md b/docs/changelog.md index 82e7bae3..34a1e211 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -6,6 +6,9 @@ - Added nvidia support for firefox. - Added `?lang=` parameter to the URL, which will set the language of the interface (by @mbattista). +### Misc +- Git commit and tag are now included in the build when creating a docker image. + ## [n.eko v2.8.0](https://github.com/m1k1o/neko/releases/tag/v2.8.0) ### New Features diff --git a/server/build b/server/build index 48cba9e4..6c3a2543 100755 --- a/server/build +++ b/server/build @@ -1,24 +1,35 @@ #!/bin/bash -set -ex +# +# aborting if any command returns a non-zero value +set -e BUILD_TIME=`date -u +'%Y-%m-%dT%H:%M:%SZ'` # # set git build variables if git exists -if git status > /dev/null 2>&1 && [ -z $GIT_COMMIT ] && [ -z $GIT_BRANCH ] && [ -z $GIT_DIRTY ]; +if git status > /dev/null 2>&1 && [ -z $GIT_COMMIT ] && [ -z $GIT_BRANCH ] && [ -z $GIT_TAG ]; then GIT_COMMIT=`git rev-parse --short HEAD` GIT_BRANCH=`git rev-parse --symbolic-full-name --abbrev-ref HEAD` + GIT_TAG=`git tag --points-at $GIT_COMMIT | head -n 1` GIT_DIRTY=`git diff-index --quiet HEAD -- || echo "✗-"` + GIT_COMMIT="${GIT_DIRTY}${GIT_COMMIT}" fi +# +# load dependencies +go get -v -t -d . + +# +# build server go build \ -o bin/neko \ -ldflags " -s -w -X 'm1k1o/neko.buildDate=${BUILD_TIME}' - -X 'm1k1o/neko.gitCommit=${GIT_DIRTY}${GIT_COMMIT}' + -X 'm1k1o/neko.gitCommit=${GIT_COMMIT}' -X 'm1k1o/neko.gitBranch=${GIT_BRANCH}' + -X 'm1k1o/neko.gitTag=${GIT_TAG}' " \ cmd/neko/main.go; diff --git a/server/neko.go b/server/neko.go index 30340084..ab6189a9 100644 --- a/server/neko.go +++ b/server/neko.go @@ -5,6 +5,7 @@ import ( "os" "os/signal" "runtime" + "strings" "m1k1o/neko/internal/capture" "m1k1o/neko/internal/config" @@ -25,7 +26,7 @@ const Header = `&34 / |/ / _ \/ //_/ __ \ ) ( ') / /| / __/ ,< / /_/ / ( / ) /_/ |_/\___/_/|_|\____/ \(__)| -&1&37 nurdism/m1k1o &33%s v%s&0 +&1&37 nurdism/m1k1o &33%s %s&0 ` var ( @@ -35,13 +36,8 @@ var ( gitCommit = "dev" // gitBranch = "dev" - - // Major version when you make incompatible API changes, - major = "2" - // Minor version when you add functionality in a backwards-compatible manner, and - minor = "8" - // Patch version when you make backwards-compatible bug fixes. - patch = "0" + // + gitTag = "dev" ) var Service *Neko @@ -49,11 +45,9 @@ var Service *Neko func init() { Service = &Neko{ Version: &Version{ - Major: major, - Minor: minor, - Patch: patch, GitCommit: gitCommit, GitBranch: gitBranch, + GitTag: gitTag, BuildDate: buildDate, GoVersion: runtime.Version(), Compiler: runtime.Compiler, @@ -69,11 +63,9 @@ func init() { } type Version struct { - Major string - Minor string - Patch string GitCommit string GitBranch string + GitTag string BuildDate string GoVersion string Compiler string @@ -81,20 +73,25 @@ type Version struct { } func (i *Version) String() string { - return fmt.Sprintf("%s.%s.%s %s", i.Major, i.Minor, i.Patch, i.GitCommit) + version := i.GitTag + if version == "" || version == "dev" { + version = i.GitBranch + } + + return fmt.Sprintf("%s@%s", version, i.GitCommit) } func (i *Version) Details() string { - return fmt.Sprintf( - "%s\n%s\n%s\n%s\n%s\n%s\n%s\n", - fmt.Sprintf("Version %s.%s.%s", i.Major, i.Minor, i.Patch), + return "\n" + strings.Join([]string{ + fmt.Sprintf("Version %s", i.String()), fmt.Sprintf("GitCommit %s", i.GitCommit), fmt.Sprintf("GitBranch %s", i.GitBranch), + fmt.Sprintf("GitTag %s", i.GitTag), fmt.Sprintf("BuildDate %s", i.BuildDate), fmt.Sprintf("GoVersion %s", i.GoVersion), fmt.Sprintf("Compiler %s", i.Compiler), fmt.Sprintf("Platform %s", i.Platform), - ) + }, "\n") + "\n" } type Neko struct {