forked from TrueCloudLab/frostfs-s3-gw
Merge pull request #55 from roman-khimov/deduplicate-bin-build
Deduplicate binary builds
This commit is contained in:
commit
43864fdd86
13 changed files with 39 additions and 58 deletions
25
Makefile
25
Makefile
|
@ -5,36 +5,25 @@ REPO ?= $(shell go list -m)
|
|||
VERSION ?= "$(shell git describe --tags 2>/dev/null || git rev-parse --short HEAD | sed 's/^v//')"
|
||||
BINDIR = bin
|
||||
|
||||
# s3 gw variables
|
||||
BIN_NAME=neofs-s3-gw
|
||||
BIN = "$(BINDIR)/$(BIN_NAME)"
|
||||
# Binaries to build
|
||||
CMDS = $(addprefix neofs-, $(notdir $(wildcard cmd/*)))
|
||||
BINS = $(addprefix $(BINDIR)/, $(CMDS))
|
||||
|
||||
# Variables for docker
|
||||
HUB_IMAGE ?= "nspccdev/$(BIN_NAME)"
|
||||
HUB_TAG ?= "$(shell echo ${VERSION} | sed 's/^v//')"
|
||||
|
||||
# Authmate variables
|
||||
AUTHMATE_BIN_NAME=neofs-authmate
|
||||
AUTHMATE_BIN = "$(BINDIR)/$(AUTHMATE_BIN_NAME)"
|
||||
|
||||
.PHONY: help all dep clean format test cover lint docker/lint image-push image dirty-image
|
||||
|
||||
# Make all binaries
|
||||
all: $(BIN) $(AUTHMATE_BIN)
|
||||
all: $(BINS)
|
||||
|
||||
$(BIN): $(BINDIR) dep
|
||||
$(BINS): $(BINDIR) dep
|
||||
@echo "⇒ Build $@"
|
||||
CGO_ENABLED=0 \
|
||||
go build -v -trimpath \
|
||||
-ldflags "-X main.Version=$(VERSION)" \
|
||||
-o $@ ./cmd/gate
|
||||
|
||||
$(AUTHMATE_BIN): $(BINDIR) dep
|
||||
@echo "⇒ Build $@"
|
||||
CGO_ENABLED=0 \
|
||||
go build -v -trimpath \
|
||||
-ldflags "-X main.Version=$(VERSION)" \
|
||||
-o $@ ./cmd/authmate
|
||||
-ldflags "-X $(REPO)/internal/version.Version=$(VERSION)" \
|
||||
-o $@ ./cmd/$(subst neofs-,,$(notdir $@))
|
||||
|
||||
$(BINDIR):
|
||||
@echo "⇒ Ensure dir: $@"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package metrics
|
||||
|
||||
import (
|
||||
"github.com/nspcc-dev/neofs-s3-gw/misc"
|
||||
"github.com/nspcc-dev/neofs-s3-gw/internal/version"
|
||||
"github.com/prometheus/client_golang/prometheus"
|
||||
)
|
||||
|
||||
|
@ -19,8 +19,6 @@ var (
|
|||
[]string{
|
||||
// current version
|
||||
"version",
|
||||
// build time of the current version
|
||||
"build_time",
|
||||
},
|
||||
)
|
||||
|
||||
|
@ -62,7 +60,7 @@ func (s *stats) Describe(ch chan<- *prometheus.Desc) {
|
|||
|
||||
func (s *stats) Collect(ch chan<- prometheus.Metric) {
|
||||
// Expose current version information
|
||||
versionInfo.WithLabelValues(misc.Version, misc.Build).Set(1.0)
|
||||
versionInfo.WithLabelValues(version.Version).Set(1.0)
|
||||
|
||||
// connect collectors
|
||||
collectHTTPMetrics(ch)
|
||||
|
|
|
@ -10,7 +10,7 @@ import (
|
|||
"strconv"
|
||||
|
||||
"github.com/google/uuid"
|
||||
"github.com/nspcc-dev/neofs-s3-gw/misc"
|
||||
"github.com/nspcc-dev/neofs-s3-gw/internal/version"
|
||||
)
|
||||
|
||||
type (
|
||||
|
@ -153,7 +153,7 @@ func errorResponseHandler(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
// Write http common headers.
|
||||
func setCommonHeaders(w http.ResponseWriter) {
|
||||
w.Header().Set(hdrServerInfo, "NeoFS-S3-GW/"+misc.Version)
|
||||
w.Header().Set(hdrServerInfo, version.Server)
|
||||
w.Header().Set(hdrAcceptRanges, "bytes")
|
||||
|
||||
// Remove sensitive information
|
||||
|
|
|
@ -15,6 +15,7 @@ import (
|
|||
"github.com/nspcc-dev/cdn-sdk/pool"
|
||||
"github.com/nspcc-dev/neofs-api-go/pkg/container"
|
||||
"github.com/nspcc-dev/neofs-s3-gw/authmate"
|
||||
"github.com/nspcc-dev/neofs-s3-gw/internal/version"
|
||||
"github.com/urfave/cli/v2"
|
||||
"go.uber.org/zap"
|
||||
"go.uber.org/zap/zapcore"
|
||||
|
@ -30,11 +31,6 @@ const (
|
|||
poolRequestTimeout = 5 * time.Second
|
||||
)
|
||||
|
||||
var (
|
||||
// Version of the program.
|
||||
Version = "dev"
|
||||
)
|
||||
|
||||
var (
|
||||
neoFSKeyPathFlag string
|
||||
peerAddressFlag string
|
||||
|
@ -89,7 +85,7 @@ func main() {
|
|||
app := &cli.App{
|
||||
Name: "NeoFS gate authentication manager",
|
||||
Usage: "Helps manage delegated access via gates to data stored in NeoFS network",
|
||||
Version: Version,
|
||||
Version: version.Version,
|
||||
Flags: appFlags(),
|
||||
Commands: appCommands(),
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/nspcc-dev/neofs-s3-gw/misc"
|
||||
"github.com/nspcc-dev/neofs-s3-gw/internal/version"
|
||||
"github.com/spf13/pflag"
|
||||
"github.com/spf13/viper"
|
||||
"go.uber.org/zap"
|
||||
|
@ -87,6 +87,12 @@ const ( // Settings.
|
|||
// Command line args.
|
||||
cmdHelp = "help"
|
||||
cmdVersion = "version"
|
||||
|
||||
// applicationName is gateway name.
|
||||
applicationName = "neofs-s3-gw"
|
||||
|
||||
// envPrefix is environment variables prefix used for configuration.
|
||||
envPrefix = "S3_GW"
|
||||
)
|
||||
|
||||
type empty int
|
||||
|
@ -145,7 +151,7 @@ func newSettings() *viper.Viper {
|
|||
v := viper.New()
|
||||
|
||||
v.AutomaticEnv()
|
||||
v.SetEnvPrefix(misc.Prefix)
|
||||
v.SetEnvPrefix(envPrefix)
|
||||
v.SetConfigType("yaml")
|
||||
v.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
|
||||
|
||||
|
@ -158,7 +164,7 @@ func newSettings() *viper.Viper {
|
|||
flags.Bool(cfgEnableMetrics, false, "enable prometheus metrics")
|
||||
|
||||
help := flags.BoolP(cmdHelp, "h", false, "show help")
|
||||
version := flags.BoolP(cmdVersion, "v", false, "show version")
|
||||
versionFlag := flags.BoolP(cmdVersion, "v", false, "show version")
|
||||
|
||||
flags.String(cfgNeoFSPrivateKey, "", "set value to hex string, WIF string, or path to NeoFS private key file")
|
||||
flags.String(cfgGateAuthPrivateKey, "", "set path to file with auth (curve25519) private key to use in auth scheme")
|
||||
|
@ -179,9 +185,8 @@ func newSettings() *viper.Viper {
|
|||
domains := flags.StringArrayP(cfgListenDomains, "d", nil, "set domains to be listened")
|
||||
|
||||
// set prefers:
|
||||
v.Set(cfgApplicationName, misc.ApplicationName)
|
||||
v.Set(cfgApplicationVersion, misc.Version)
|
||||
v.Set(cfgApplicationBuildTime, misc.Build)
|
||||
v.Set(cfgApplicationName, applicationName)
|
||||
v.Set(cfgApplicationVersion, version.Version)
|
||||
|
||||
// set defaults:
|
||||
|
||||
|
@ -229,7 +234,7 @@ func newSettings() *viper.Viper {
|
|||
|
||||
switch {
|
||||
case help != nil && *help:
|
||||
fmt.Printf("NeoFS S3 Gateway %s (%s)\n", misc.Version, misc.Build)
|
||||
fmt.Printf("NeoFS S3 gateway %s\n", version.Version)
|
||||
flags.PrintDefaults()
|
||||
|
||||
fmt.Println()
|
||||
|
@ -244,19 +249,19 @@ func newSettings() *viper.Viper {
|
|||
}
|
||||
|
||||
k := strings.Replace(keys[i], ".", "_", -1)
|
||||
fmt.Printf("%s_%s = %v\n", misc.Prefix, strings.ToUpper(k), v.Get(keys[i]))
|
||||
fmt.Printf("%s_%s = %v\n", envPrefix, strings.ToUpper(k), v.Get(keys[i]))
|
||||
}
|
||||
|
||||
fmt.Println()
|
||||
fmt.Println("Peers preset:")
|
||||
fmt.Println()
|
||||
|
||||
fmt.Printf("%s_%s_[N]_ADDRESS = string\n", misc.Prefix, strings.ToUpper(cfgPeers))
|
||||
fmt.Printf("%s_%s_[N]_WEIGHT = 0..1 (float)\n", misc.Prefix, strings.ToUpper(cfgPeers))
|
||||
fmt.Printf("%s_%s_[N]_ADDRESS = string\n", envPrefix, strings.ToUpper(cfgPeers))
|
||||
fmt.Printf("%s_%s_[N]_WEIGHT = 0..1 (float)\n", envPrefix, strings.ToUpper(cfgPeers))
|
||||
|
||||
os.Exit(0)
|
||||
case version != nil && *version:
|
||||
fmt.Printf("NeoFS S3 Gateway %s (%s)\n", misc.Version, misc.Build)
|
||||
case versionFlag != nil && *versionFlag:
|
||||
fmt.Printf("NeoFS S3 gateway %s\n", version.Version)
|
||||
os.Exit(0)
|
||||
case ttl != nil && ttl.Minutes() < minimumTTLInMinutes:
|
||||
fmt.Printf("connection ttl should not be less than %s", defaultTTL)
|
9
internal/version/version.go
Normal file
9
internal/version/version.go
Normal file
|
@ -0,0 +1,9 @@
|
|||
package version
|
||||
|
||||
var (
|
||||
// Version contains application version.
|
||||
Version = "dev"
|
||||
|
||||
// Server contains server identification string.
|
||||
Server = "NeoFS-S3-GW/" + Version
|
||||
)
|
|
@ -1,16 +0,0 @@
|
|||
package misc
|
||||
|
||||
const (
|
||||
// ApplicationName is gateway name.
|
||||
ApplicationName = "neofs-s3-gw"
|
||||
|
||||
// Prefix is configuration environment variables prefix.
|
||||
Prefix = "S3_GW"
|
||||
)
|
||||
|
||||
var (
|
||||
// Build holds build timestamp.
|
||||
Build = "now"
|
||||
// Version contains application version.
|
||||
Version = "dev"
|
||||
)
|
Loading…
Reference in a new issue