From 4be740a6f997297f9f79f27cbd2519ca49b16e7c Mon Sep 17 00:00:00 2001 From: MohammadReza Palide Date: Wed, 6 Oct 2021 17:35:45 +0330 Subject: [PATCH 1/4] add build_tag to summary endpoint --- .goreleaser.yml | 14 +++++++------- Makefile | 3 ++- pkg/visor/api.go | 18 ++++++++++++++++++ 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index 551ffcbff8..d4d8254aa1 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -34,7 +34,7 @@ builds: env: - CGO_ENABLED=0 main: ./cmd/skywire-visor/ - ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} + ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} github.com/skycoin/skywire/pkg/visor.buildTag=skybian - id: skywire-cli binary: skywire-cli @@ -55,7 +55,7 @@ builds: env: - CGO_ENABLED=0 main: ./cmd/skywire-cli/ - ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} + ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} github.com/skycoin/skywire/pkg/visor.buildTag=skybian - id: skychat binary: apps/skychat goos: @@ -75,7 +75,7 @@ builds: env: - CGO_ENABLED=0 main: ./cmd/apps/skychat/ - ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} + ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} github.com/skycoin/skywire/pkg/visor.buildTag=skybian - id: skysocks binary: apps/skysocks goos: @@ -95,7 +95,7 @@ builds: env: - CGO_ENABLED=0 main: ./cmd/apps/skysocks/ - ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} + ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} github.com/skycoin/skywire/pkg/visor.buildTag=skybian - id: skysocks-client binary: apps/skysocks-client goos: @@ -115,7 +115,7 @@ builds: env: - CGO_ENABLED=0 main: ./cmd/apps/skysocks-client/ - ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} + ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} github.com/skycoin/skywire/pkg/visor.buildTag=skybian - id: vpn-server binary: apps/vpn-server goos: @@ -135,7 +135,7 @@ builds: env: - CGO_ENABLED=0 main: ./cmd/apps/vpn-server/ - ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} + ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} github.com/skycoin/skywire/pkg/visor.buildTag=skybian - id: vpn-client binary: apps/vpn-client goos: @@ -155,7 +155,7 @@ builds: env: - CGO_ENABLED=0 main: ./cmd/apps/vpn-client/ - ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} + ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} github.com/skycoin/skywire/pkg/visor.buildTag=skybian archives: - format: tar.gz wrap_in_directory: false diff --git a/Makefile b/Makefile index db51467d1d..704e89e5c1 100644 --- a/Makefile +++ b/Makefile @@ -38,8 +38,9 @@ BUILDINFO_PATH := $(DMSG_BASE)/buildinfo BUILDINFO_VERSION := -X $(BUILDINFO_PATH).version=$(VERSION) BUILDINFO_DATE := -X $(BUILDINFO_PATH).date=$(DATE) BUILDINFO_COMMIT := -X $(BUILDINFO_PATH).commit=$(COMMIT) +BUILDTAGINFO := -X $(PROJECT_BASE)/pkg/visor.buildTag=$(BUILDTAG) -BUILDINFO?=$(BUILDINFO_VERSION) $(BUILDINFO_DATE) $(BUILDINFO_COMMIT) +BUILDINFO?=$(BUILDINFO_VERSION) $(BUILDINFO_DATE) $(BUILDINFO_COMMIT) $(BUILDTAGINFO) BUILD_OPTS?="-ldflags=$(BUILDINFO)" -mod=vendor $(RACE_FLAG) BUILD_OPTS_DEPLOY?="-ldflags=$(BUILDINFO) -w -s" diff --git a/pkg/visor/api.go b/pkg/visor/api.go index e8dbffec95..9aedcc152b 100644 --- a/pkg/visor/api.go +++ b/pkg/visor/api.go @@ -8,6 +8,7 @@ import ( "net/http" "os" "os/exec" + "regexp" "strings" "sync" "time" @@ -166,10 +167,17 @@ type Summary struct { MinHops uint16 `json:"min_hops"` PersistentTransports []transport.PersistentTransports `json:"persistent_transports"` SkybianBuildVersion string `json:"skybian_build_version"` + BuildTag string `json:"build_tag"` } +// buildTag variable that will set when building binary +var ( + buildTag = "unknown" +) + // Summary implements API. func (v *Visor) Summary() (*Summary, error) { + buildTag := v.BuildTagValidation(buildTag) overview, err := v.Overview() if err != nil { return nil, fmt.Errorf("overview") @@ -214,6 +222,7 @@ func (v *Visor) Summary() (*Summary, error) { MinHops: v.conf.Routing.MinHops, PersistentTransports: pts, SkybianBuildVersion: skybianBuildVersion, + BuildTag: buildTag, } return summary, nil @@ -313,6 +322,15 @@ func (v *Visor) SkybianBuildVersion() string { return os.Getenv("SKYBIAN_BUILD_VERSION") } +// BuildTagValidation implements API. +func (v *Visor) BuildTagValidation(buildTag string) string { + reg, err := regexp.Compile("[^A-Za-z0-9]+") + if err != nil { + log.Fatal(err) + } + return reg.ReplaceAllString(buildTag, "") +} + // StartApp implements API. func (v *Visor) StartApp(appName string) error { var envs []string From b700bac04de3ca164d8b748d43cb73e175545220 Mon Sep 17 00:00:00 2001 From: MohammadReza Palide Date: Wed, 6 Oct 2021 17:39:14 +0330 Subject: [PATCH 2/4] set 'unknown' as tag if not set on build --- pkg/visor/api.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkg/visor/api.go b/pkg/visor/api.go index 9aedcc152b..3eb41ee33b 100644 --- a/pkg/visor/api.go +++ b/pkg/visor/api.go @@ -171,9 +171,7 @@ type Summary struct { } // buildTag variable that will set when building binary -var ( - buildTag = "unknown" -) +var buildTag string // Summary implements API. func (v *Visor) Summary() (*Summary, error) { @@ -324,6 +322,9 @@ func (v *Visor) SkybianBuildVersion() string { // BuildTagValidation implements API. func (v *Visor) BuildTagValidation(buildTag string) string { + if buildTag == "" { + return "unknown" + } reg, err := regexp.Compile("[^A-Za-z0-9]+") if err != nil { log.Fatal(err) From 124d6f22869dca9c30440d28492b1bd77d2bd46d Mon Sep 17 00:00:00 2001 From: MohammadReza Palide Date: Wed, 6 Oct 2021 19:08:51 +0330 Subject: [PATCH 3/4] remove regex validator --- pkg/visor/api.go | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/pkg/visor/api.go b/pkg/visor/api.go index 3eb41ee33b..33fdfaf89d 100644 --- a/pkg/visor/api.go +++ b/pkg/visor/api.go @@ -8,7 +8,6 @@ import ( "net/http" "os" "os/exec" - "regexp" "strings" "sync" "time" @@ -175,7 +174,6 @@ var buildTag string // Summary implements API. func (v *Visor) Summary() (*Summary, error) { - buildTag := v.BuildTagValidation(buildTag) overview, err := v.Overview() if err != nil { return nil, fmt.Errorf("overview") @@ -320,18 +318,6 @@ func (v *Visor) SkybianBuildVersion() string { return os.Getenv("SKYBIAN_BUILD_VERSION") } -// BuildTagValidation implements API. -func (v *Visor) BuildTagValidation(buildTag string) string { - if buildTag == "" { - return "unknown" - } - reg, err := regexp.Compile("[^A-Za-z0-9]+") - if err != nil { - log.Fatal(err) - } - return reg.ReplaceAllString(buildTag, "") -} - // StartApp implements API. func (v *Visor) StartApp(appName string) error { var envs []string From c8cc3c09e87a64ee6ee0028154b296e8dd5d26f8 Mon Sep 17 00:00:00 2001 From: MohammadReza Palide Date: Wed, 6 Oct 2021 20:42:48 +0330 Subject: [PATCH 4/4] add build_tag to logs --- .goreleaser.yml | 14 +++++++------- Makefile | 2 +- cmd/skywire-visor/commands/root.go | 6 ++++-- pkg/visor/api.go | 6 +++--- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index d4d8254aa1..92405b4530 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -34,7 +34,7 @@ builds: env: - CGO_ENABLED=0 main: ./cmd/skywire-visor/ - ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} github.com/skycoin/skywire/pkg/visor.buildTag=skybian + ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} github.com/skycoin/skywire/pkg/visor.BuildTag=skybian - id: skywire-cli binary: skywire-cli @@ -55,7 +55,7 @@ builds: env: - CGO_ENABLED=0 main: ./cmd/skywire-cli/ - ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} github.com/skycoin/skywire/pkg/visor.buildTag=skybian + ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} github.com/skycoin/skywire/pkg/visor.BuildTag=skybian - id: skychat binary: apps/skychat goos: @@ -75,7 +75,7 @@ builds: env: - CGO_ENABLED=0 main: ./cmd/apps/skychat/ - ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} github.com/skycoin/skywire/pkg/visor.buildTag=skybian + ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} github.com/skycoin/skywire/pkg/visor.BuildTag=skybian - id: skysocks binary: apps/skysocks goos: @@ -95,7 +95,7 @@ builds: env: - CGO_ENABLED=0 main: ./cmd/apps/skysocks/ - ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} github.com/skycoin/skywire/pkg/visor.buildTag=skybian + ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} github.com/skycoin/skywire/pkg/visor.BuildTag=skybian - id: skysocks-client binary: apps/skysocks-client goos: @@ -115,7 +115,7 @@ builds: env: - CGO_ENABLED=0 main: ./cmd/apps/skysocks-client/ - ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} github.com/skycoin/skywire/pkg/visor.buildTag=skybian + ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} github.com/skycoin/skywire/pkg/visor.BuildTag=skybian - id: vpn-server binary: apps/vpn-server goos: @@ -135,7 +135,7 @@ builds: env: - CGO_ENABLED=0 main: ./cmd/apps/vpn-server/ - ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} github.com/skycoin/skywire/pkg/visor.buildTag=skybian + ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} github.com/skycoin/skywire/pkg/visor.BuildTag=skybian - id: vpn-client binary: apps/vpn-client goos: @@ -155,7 +155,7 @@ builds: env: - CGO_ENABLED=0 main: ./cmd/apps/vpn-client/ - ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} github.com/skycoin/skywire/pkg/visor.buildTag=skybian + ldflags: -s -w -X github.com/skycoin/dmsg/buildinfo.version={{.Version}} -X github.com/skycoin/dmsg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/dmsg/buildinfo.date={{.Date}} github.com/skycoin/skywire/pkg/visor.BuildTag=skybian archives: - format: tar.gz wrap_in_directory: false diff --git a/Makefile b/Makefile index 704e89e5c1..e8f63f0b9b 100644 --- a/Makefile +++ b/Makefile @@ -38,7 +38,7 @@ BUILDINFO_PATH := $(DMSG_BASE)/buildinfo BUILDINFO_VERSION := -X $(BUILDINFO_PATH).version=$(VERSION) BUILDINFO_DATE := -X $(BUILDINFO_PATH).date=$(DATE) BUILDINFO_COMMIT := -X $(BUILDINFO_PATH).commit=$(COMMIT) -BUILDTAGINFO := -X $(PROJECT_BASE)/pkg/visor.buildTag=$(BUILDTAG) +BUILDTAGINFO := -X $(PROJECT_BASE)/pkg/visor.BuildTag=$(BUILDTAG) BUILDINFO?=$(BUILDINFO_VERSION) $(BUILDINFO_DATE) $(BUILDINFO_COMMIT) $(BUILDTAGINFO) diff --git a/cmd/skywire-visor/commands/root.go b/cmd/skywire-visor/commands/root.go index 36d937d687..d6783b978d 100644 --- a/cmd/skywire-visor/commands/root.go +++ b/cmd/skywire-visor/commands/root.go @@ -2,10 +2,8 @@ package commands import ( "context" - "embed" "fmt" "io" - "io/fs" "io/ioutil" "net/http" _ "net/http/pprof" // nolint:gosec // https://golang.org/doc/diagnostics.html#profiling @@ -17,6 +15,9 @@ import ( "syscall" "time" + "embed" + "io/fs" + "github.com/pkg/profile" "github.com/skycoin/dmsg/buildinfo" "github.com/skycoin/dmsg/cmdutil" @@ -86,6 +87,7 @@ func runVisor(args []string) { WithField("systemd", restartCtx.Systemd()). WithField("parent_systemd", restartCtx.ParentSystemd()). WithField("skybian_build_version", os.Getenv("SKYBIAN_BUILD_VERSION")). + WithField("build_tag", visor.BuildTag). Debugf("Process info") // Versions v0.2.3 and below return 0 exit-code after update and do not trigger systemd to restart a process diff --git a/pkg/visor/api.go b/pkg/visor/api.go index 33fdfaf89d..25602c0848 100644 --- a/pkg/visor/api.go +++ b/pkg/visor/api.go @@ -169,8 +169,8 @@ type Summary struct { BuildTag string `json:"build_tag"` } -// buildTag variable that will set when building binary -var buildTag string +// BuildTag variable that will set when building binary +var BuildTag string // Summary implements API. func (v *Visor) Summary() (*Summary, error) { @@ -218,7 +218,7 @@ func (v *Visor) Summary() (*Summary, error) { MinHops: v.conf.Routing.MinHops, PersistentTransports: pts, SkybianBuildVersion: skybianBuildVersion, - BuildTag: buildTag, + BuildTag: BuildTag, } return summary, nil