diff --git a/.gitignore b/.gitignore index e56a6f4..b656595 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ vendor/ main /versionrecover.bolt +/recover.bolt diff --git a/cmd/app/main.go b/cmd/app/main.go index 13a61ca..ae00296 100644 --- a/cmd/app/main.go +++ b/cmd/app/main.go @@ -4,18 +4,33 @@ import ( "encoding/json" "fmt" "log" + "os" + "time" "go.uber.org/zap" "penahub.gitlab.yandexcloud.net/pena-services/customer/internal/app" "penahub.gitlab.yandexcloud.net/pena-services/customer/internal/initialize" ) +var ( + commit string = os.Getenv("COMMIT") + buildTime string = os.Getenv("BUILD_TIME") + version string = os.Getenv("VERSION") +) + +// $env:COMMIT=$(git rev-parse --short HEAD); $env:BUILD_TIME=$(Get-Date -UFormat "%Y-%m-%dT%H:%M:%SZ"); $env:VERSION=$(git describe --tags); go run cmd/app/main.go + func main() { logger, err := zap.NewProduction(zap.AddStacktrace(zap.DPanicLevel)) if err != nil { log.Fatalf("failed to init zap logger: %v", err) } + ptime, err := time.Parse(time.RFC3339, buildTime) + if err != nil { + logger.Fatal("Error parsing build time:", zap.Error(err)) + } + config, err := initialize.Configuration(".env.test") if err != nil { logger.Fatal("failed to init config: %v", zap.Error(err)) @@ -28,7 +43,11 @@ func main() { fmt.Println("env configuration: \n", string(configJSON)) - if err := app.Run(config, logger); err != nil { + if err := app.Run(config, logger, app.Build{ + Commit: commit, + Version: version, + BuildTime: ptime.Unix(), + }); err != nil { logger.Fatal("failed to run app: %v", zap.Error(err)) } } diff --git a/internal/app/app.go b/internal/app/app.go index b45bec4..5ff5e5b 100644 --- a/internal/app/app.go +++ b/internal/app/app.go @@ -28,7 +28,13 @@ const ( shutdownTimeout = 5 * time.Second ) -func Run(config *models.Config, logger *zap.Logger) (appErr error) { +type Build struct { + Commit string + Version string + BuildTime int64 +} + +func Run(config *models.Config, logger *zap.Logger, build Build) (appErr error) { defer func() { if recovered := recover(); recovered != nil { appErr = errors.New("recovered panic on application run") @@ -41,7 +47,7 @@ func Run(config *models.Config, logger *zap.Logger) (appErr error) { ctx, cancel := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM) defer cancel() - clickHouseLogger, err := zaptrashlog.NewCore(ctx, zap.InfoLevel, config.Service.TrashLogHost, "version", "Commit", time.Now().Unix()) + clickHouseLogger, err := zaptrashlog.NewCore(ctx, zap.InfoLevel, config.Service.TrashLogHost, build.Version, build.Commit, build.BuildTime) if err != nil { panic(err) } @@ -49,9 +55,9 @@ func Run(config *models.Config, logger *zap.Logger) (appErr error) { //telegrammLogger, err := zaptg.NewCore(ctx, // zap.InfoLevel, // "1408111289:AAHfWZRiBQRncb2gl2LtU8OeASjfJi4e8YE", - // "version.Release", - // "version.Commit", - // 0, + // build.Version, + // build.Commit, + // build.BuildTime, // -1001256687920, //) //if err != nil {