diff --git a/.github/workflows/buildx-branch.yml b/.github/workflows/buildx-branch.yml index 863cc608..d8614a61 100644 --- a/.github/workflows/buildx-branch.yml +++ b/.github/workflows/buildx-branch.yml @@ -42,7 +42,7 @@ jobs: --progress plain \ --platform=linux/amd64 \ --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \ - --build-arg VCS_REF=`git rev-parse --short HEAD` \ + --build-arg COMMIT=`git rev-parse --short HEAD` \ --build-arg VERSION=${GITHUB_REF##*/} \ -t qmcgaw/private-internet-access:${GITHUB_REF##*/} \ --push \ diff --git a/.github/workflows/buildx-latest.yml b/.github/workflows/buildx-latest.yml index 7ae28cbf..585f5df9 100644 --- a/.github/workflows/buildx-latest.yml +++ b/.github/workflows/buildx-latest.yml @@ -39,7 +39,7 @@ jobs: --progress plain \ --platform=linux/amd64,linux/386,linux/arm64,linux/arm/v7,linux/arm/v6 \ --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \ - --build-arg VCS_REF=`git rev-parse --short HEAD` \ + --build-arg COMMIT=`git rev-parse --short HEAD` \ --build-arg VERSION=latest \ -t qmcgaw/private-internet-access:latest \ --push \ diff --git a/.github/workflows/buildx-release.yml b/.github/workflows/buildx-release.yml index 6239e4bf..31a30f26 100644 --- a/.github/workflows/buildx-release.yml +++ b/.github/workflows/buildx-release.yml @@ -39,7 +39,7 @@ jobs: --progress plain \ --platform=linux/amd64,linux/386,linux/arm64,linux/arm/v7,linux/arm/v6 \ --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \ - --build-arg VCS_REF=`git rev-parse --short HEAD` \ + --build-arg COMMIT=`git rev-parse --short HEAD` \ --build-arg VERSION=${GITHUB_REF##*/} \ -t qmcgaw/private-internet-access:${GITHUB_REF##*/} \ --push \ diff --git a/Dockerfile b/Dockerfile index d755dd43..68dba486 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,24 +10,28 @@ WORKDIR /tmp/gobuild COPY .golangci.yml . COPY go.mod go.sum ./ RUN go mod download 2>&1 +ARG VERSION=unknown +ARG BUILD_DATE="an unknown date" +ARG COMMIT=unknown COPY cmd/gluetun/main.go . COPY internal/ ./internal/ RUN go test ./... RUN golangci-lint run --timeout=10m -RUN go build -trimpath -ldflags="-s -w" -o entrypoint main.go +RUN go build -trimpath -ldflags="-s -w \ + -X 'main.version=$VERSION' \ + -X 'main.buildDate=$BUILD_DATE' \ + -X 'main.commit=$COMMIT' \ + " -o entrypoint main.go FROM alpine:${ALPINE_VERSION} -ARG VERSION -ARG BUILD_DATE -ARG VCS_REF -ENV VERSION=$VERSION \ - BUILD_DATE=$BUILD_DATE \ - VCS_REF=$VCS_REF +ARG VERSION=unknown +ARG BUILD_DATE="an unknown date" +ARG COMMIT=unknown LABEL \ org.opencontainers.image.authors="quentin.mcgaw@gmail.com" \ org.opencontainers.image.created=$BUILD_DATE \ org.opencontainers.image.version=$VERSION \ - org.opencontainers.image.revision=$VCS_REF \ + org.opencontainers.image.revision=$COMMIT \ org.opencontainers.image.url="https://github.com/qdm12/gluetun" \ org.opencontainers.image.documentation="https://github.com/qdm12/gluetun" \ org.opencontainers.image.source="https://github.com/qdm12/gluetun" \ diff --git a/cmd/gluetun/main.go b/cmd/gluetun/main.go index 3bc7829a..b63bc8dd 100644 --- a/cmd/gluetun/main.go +++ b/cmd/gluetun/main.go @@ -31,6 +31,13 @@ import ( "github.com/qdm12/golibs/network" ) +//nolint:gochecknoglobals +var ( + version = "unknown" + commit = "unknown" + buildDate = "an unknown date" +) + func main() { ctx := context.Background() os.Exit(_main(ctx, os.Args)) @@ -73,10 +80,7 @@ func _main(background context.Context, args []string) int { //nolint:gocognit,go streamMerger := command.NewStreamMerger() paramsReader := params.NewReader(logger, fileManager) - fmt.Println(gluetunLogging.Splash( - paramsReader.GetVersion(), - paramsReader.GetVcsRef(), - paramsReader.GetBuildDate())) + fmt.Println(gluetunLogging.Splash(version, commit, buildDate)) printVersions(ctx, logger, map[string]func(ctx context.Context) (string, error){ "OpenVPN": ovpnConf.Version, diff --git a/internal/logging/splash.go b/internal/logging/splash.go index ee7b82ac..4fc5ae05 100644 --- a/internal/logging/splash.go +++ b/internal/logging/splash.go @@ -10,10 +10,10 @@ import ( ) // Splash returns the welcome spash message -func Splash(version, vcsRef, buildDate string) string { +func Splash(version, commit, buildDate string) string { lines := title() lines = append(lines, "") - lines = append(lines, fmt.Sprintf("Running version %s built on %s (commit %s)", version, buildDate, vcsRef)) + lines = append(lines, fmt.Sprintf("Running version %s built on %s (commit %s)", version, buildDate, commit)) lines = append(lines, "") lines = append(lines, announcement()...) lines = append(lines, "") diff --git a/internal/params/params.go b/internal/params/params.go index 8c6f43ce..b44df5cd 100644 --- a/internal/params/params.go +++ b/internal/params/params.go @@ -108,11 +108,6 @@ type Reader interface { // Public IP getters GetPublicIPPeriod() (period time.Duration, err error) - - // Version getters - GetVersion() string - GetBuildDate() string - GetVcsRef() string } type reader struct { diff --git a/internal/params/version.go b/internal/params/version.go deleted file mode 100644 index 079b4f17..00000000 --- a/internal/params/version.go +++ /dev/null @@ -1,20 +0,0 @@ -package params - -import ( - libparams "github.com/qdm12/golibs/params" -) - -func (r *reader) GetVersion() string { - version, _ := r.envParams.GetEnv("VERSION", libparams.Default("?"), libparams.CaseSensitiveValue()) - return version -} - -func (r *reader) GetBuildDate() string { - buildDate, _ := r.envParams.GetEnv("BUILD_DATE", libparams.Default("?"), libparams.CaseSensitiveValue()) - return buildDate -} - -func (r *reader) GetVcsRef() string { - buildDate, _ := r.envParams.GetEnv("VCS_REF", libparams.Default("?"), libparams.CaseSensitiveValue()) - return buildDate -}