From 355dac8ea3f34f3de8aefb44ea1cdee1d54dec44 Mon Sep 17 00:00:00 2001 From: "Stanislav N. aka pztrn" Date: Mon, 7 Oct 2019 21:51:45 +0500 Subject: [PATCH] Linting and dockerization. --- .drone.yml | 15 +++++++++++++++ .golangci.yml | 18 ++++++++++++++++++ Dockerfile | 17 +++++++++++++++++ cmd/giredorectl/main.go | 2 +- cmd/giredored/main.go | 2 +- domains/server/v1/packagesapi.go | 2 +- internal/configuration/exported.go | 4 +--- internal/httpserver/exported.go | 5 ++--- internal/logger/exported.go | 3 --- 9 files changed, 56 insertions(+), 12 deletions(-) create mode 100644 .drone.yml create mode 100644 .golangci.yml create mode 100644 Dockerfile diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..e2a9fab --- /dev/null +++ b/.drone.yml @@ -0,0 +1,15 @@ +--- +kind: pipeline +type: docker +name: build + +steps: +- name: docker + image: plugins/docker + settings: + username: + from_secret: dockerhub_user + password: + from_secret: dockerhub_password + repo: pztrn/giredore + auto_tag: true \ No newline at end of file diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 0000000..549ef2f --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,18 @@ +run: + deadline: 5m +linters: + enable-all: true + disable: + # Because globals might exist, but according to our codestyle they + # should be lowercased and considered as unexported. + - gochecknoglobals + # While it might be useful it'll create more problems that will solve. + - gocritic + # Complains about main() lengths, which isn't an issue. + - funlen +linters-settings: + lll: + line-length: 420 + gocyclo: + min-complexity: 40 + \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8feaecc --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +FROM golang:1.13.1-alpine AS build + +WORKDIR /go/src/sources.dev.pztrn.name/pztrn/giredore +COPY . . + +WORKDIR /go/src/gitlab.com/pztrn/fastpastebin/cmd/fastpastebin + +RUN cd /go/src/sources.dev.pztrn.name/pztrn/giredore/cmd/giredored && go build && cd ../giredorectl && go build + +FROM alpine:latest +LABEL maintainer "Stanislav N. " + +COPY --from=build /go/src/sources.dev.pztrn.name/pztrn/giredore/cmd/giredored/giredored /usr/local/bin/giredored +COPY --from=build /go/src/sources.dev.pztrn.name/pztrn/giredore/cmd/giredorectl/giredorectl /usr/local/bin/giredorectl + +EXPOSE 62222 +ENTRYPOINT [ "/usr/local/bin/giredored" ] \ No newline at end of file diff --git a/cmd/giredorectl/main.go b/cmd/giredorectl/main.go index 35217af..a1a60d4 100644 --- a/cmd/giredorectl/main.go +++ b/cmd/giredorectl/main.go @@ -5,7 +5,7 @@ import ( "os" // local - "sources.dev.pztrn.name/pztrn/giredore/domains/client/v1" + clientv1 "sources.dev.pztrn.name/pztrn/giredore/domains/client/v1" "sources.dev.pztrn.name/pztrn/giredore/internal/logger" // other diff --git a/cmd/giredored/main.go b/cmd/giredored/main.go index 306401f..ab75601 100644 --- a/cmd/giredored/main.go +++ b/cmd/giredored/main.go @@ -7,7 +7,7 @@ import ( "syscall" // local - "sources.dev.pztrn.name/pztrn/giredore/domains/server/v1" + serverv1 "sources.dev.pztrn.name/pztrn/giredore/domains/server/v1" "sources.dev.pztrn.name/pztrn/giredore/internal/configuration" "sources.dev.pztrn.name/pztrn/giredore/internal/httpserver" "sources.dev.pztrn.name/pztrn/giredore/internal/logger" diff --git a/domains/server/v1/packagesapi.go b/domains/server/v1/packagesapi.go index 0765660..499ea91 100644 --- a/domains/server/v1/packagesapi.go +++ b/domains/server/v1/packagesapi.go @@ -31,7 +31,7 @@ func packagesGET(ec echo.Context) error { pkgs, errors = configuration.Cfg.GetPackagesInfo(req.PackageNames) } - if errors != nil && len(errors) > 0 { + if len(errors) > 0 { return ec.JSON(http.StatusBadRequest, &structs.Reply{Status: structs.StatusFailure, Errors: errors, Data: pkgs}) } diff --git a/internal/configuration/exported.go b/internal/configuration/exported.go index b743e40..1158508 100644 --- a/internal/configuration/exported.go +++ b/internal/configuration/exported.go @@ -9,8 +9,7 @@ import ( ) var ( - log zerolog.Logger - loggerInitialized bool + log zerolog.Logger envCfg *envConfig Cfg *fileConfig @@ -18,7 +17,6 @@ var ( func Initialize() { log = logger.Logger.With().Str("type", "internal").Str("package", "configuration").Logger() - loggerInitialized = true log.Info().Msg("Initializing...") envCfg = &envConfig{} diff --git a/internal/httpserver/exported.go b/internal/httpserver/exported.go index ca1c2ae..48f5a6f 100644 --- a/internal/httpserver/exported.go +++ b/internal/httpserver/exported.go @@ -49,7 +49,6 @@ func Shutdown() { log.Fatal().Err(err).Msg("Failed to stop HTTP server") } log.Info().Msg("HTTP server shutted down") - } // Start starts HTTP server and checks that server is ready to process @@ -60,7 +59,7 @@ func Start() { go func() { err := Srv.Start(configuration.Cfg.HTTP.Listen) if !strings.Contains(err.Error(), "Server closed") { - log.Fatal().Err(err).Msg("HTTP server critial error occured") + log.Fatal().Err(err).Msg("HTTP server critial error occurred") } }() @@ -75,7 +74,7 @@ func Start() { time.Sleep(time.Second * 1) resp, err := httpc.Get("http://" + configuration.Cfg.HTTP.Listen + "/_internal/waitForOnline") if err != nil { - log.Debug().Err(err).Msg("HTTP error occured, HTTP server isn't ready, waiting...") + log.Debug().Err(err).Msg("HTTP error occurred, HTTP server isn't ready, waiting...") continue } diff --git a/internal/logger/exported.go b/internal/logger/exported.go index 1b47636..fbbbb58 100644 --- a/internal/logger/exported.go +++ b/internal/logger/exported.go @@ -14,8 +14,6 @@ import ( var ( Logger zerolog.Logger SuperVerbosive bool - - loggerInitialized bool ) // Initialize initializes zerolog with proper formatting and log level. @@ -72,5 +70,4 @@ func Initialize() { } Logger = zerolog.New(output).With().Timestamp().Logger() - loggerInitialized = true }