Inject version & build-time info and show it on startup & on /version endpoint
This commit is contained in:
parent
aebe0348b7
commit
602f77c2f1
@ -1,2 +1,4 @@
|
||||
.idea
|
||||
build
|
||||
codegen
|
||||
codegen
|
||||
var
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
## builder image
|
||||
|
||||
FROM golang:1.10-alpine AS builder
|
||||
|
||||
WORKDIR /go/src/github.com/crusttech/crust
|
||||
@ -8,18 +7,18 @@ ENV CGO_ENABLED=0
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN mkdir /build; go build -o /build/auth cmd/auth/*.go
|
||||
|
||||
RUN apk update && apk upgrade && apk add --no-cache git
|
||||
RUN mkdir /build; \
|
||||
go build \
|
||||
-ldflags "-X github.com/crusttech/crust/internal/version.BuildTime="`date +%FT%T%z`" -X github.com/crusttech/crust/internal/version.Version="`git describe --always --tags` \
|
||||
-o /build/auth cmd/auth/*.go
|
||||
|
||||
## target image
|
||||
|
||||
FROM alpine:3.7
|
||||
|
||||
ENV PATH="/crust:{$PATH}"
|
||||
WORKDIR /crust
|
||||
|
||||
# @todo copy crm/types, migrations
|
||||
|
||||
COPY --from=builder /build/* /crust/
|
||||
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
|
||||
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
## builder image
|
||||
|
||||
FROM golang:1.10-alpine AS builder
|
||||
|
||||
WORKDIR /go/src/github.com/crusttech/crust
|
||||
@ -8,18 +7,18 @@ ENV CGO_ENABLED=0
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN mkdir /build; go build -o /build/crm cmd/crm/*.go
|
||||
|
||||
RUN apk update && apk upgrade && apk add --no-cache git
|
||||
RUN mkdir /build; \
|
||||
go build \
|
||||
-ldflags "-X github.com/crusttech/crust/internal/version.BuildTime="`date +%FT%T%z`" -X github.com/crusttech/crust/internal/version.Version="`git describe --always --tags` \
|
||||
-o /build/crm cmd/crm/*.go
|
||||
|
||||
## target image
|
||||
|
||||
FROM alpine:3.7
|
||||
|
||||
ENV PATH="/crust:{$PATH}"
|
||||
WORKDIR /crust
|
||||
|
||||
# @todo copy crm/types, migrations
|
||||
|
||||
COPY --from=builder /build/* /crust/
|
||||
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
|
||||
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
## builder image
|
||||
|
||||
FROM golang:1.10-alpine AS builder
|
||||
|
||||
WORKDIR /go/src/github.com/crusttech/crust
|
||||
@ -8,18 +7,18 @@ ENV CGO_ENABLED=0
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN mkdir /build; go build -o /build/sam cmd/sam/*.go
|
||||
|
||||
RUN apk update && apk upgrade && apk add --no-cache git
|
||||
RUN mkdir /build; \
|
||||
go build \
|
||||
-ldflags "-X github.com/crusttech/crust/internal/version.BuildTime="`date +%FT%T%z`" -X github.com/crusttech/crust/internal/version.Version="`git describe --always --tags` \
|
||||
-o /build/sam cmd/sam/*.go
|
||||
|
||||
## target image
|
||||
|
||||
FROM alpine:3.7
|
||||
|
||||
ENV PATH="/crust:{$PATH}"
|
||||
WORKDIR /crust
|
||||
|
||||
# @todo copy crm/types, migrations
|
||||
|
||||
COPY --from=builder /build/* /crust/
|
||||
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
|
||||
|
||||
|
||||
@ -10,6 +10,7 @@ import (
|
||||
|
||||
"github.com/crusttech/crust/internal/config"
|
||||
"github.com/crusttech/crust/internal/metrics"
|
||||
"github.com/crusttech/crust/internal/version"
|
||||
)
|
||||
|
||||
func mountRoutes(r chi.Router, opts *config.HTTP, mounts ...func(r chi.Router)) {
|
||||
@ -30,6 +31,7 @@ func mountSystemRoutes(r chi.Router, opts *config.HTTP) {
|
||||
r.Handle("/metrics", metrics.Handler())
|
||||
}
|
||||
r.Mount("/debug", middleware.Profiler())
|
||||
r.Get("/version", version.HttpHandler)
|
||||
}
|
||||
|
||||
func printRoutes(r chi.Router, opts *config.HTTP) {
|
||||
|
||||
@ -8,11 +8,14 @@ import (
|
||||
|
||||
"github.com/crusttech/crust/internal/auth"
|
||||
"github.com/crusttech/crust/internal/rbac"
|
||||
"github.com/crusttech/crust/internal/version"
|
||||
)
|
||||
|
||||
func main() {
|
||||
config := flags("sam", service.Flags, auth.Flags, rbac.Flags)
|
||||
|
||||
log.Printf("Starting sam, version: %v, built on: %v", version.Version, version.BuildTime)
|
||||
|
||||
// log to stdout not stderr
|
||||
log.SetOutput(os.Stdout)
|
||||
log.SetFlags(log.LstdFlags | log.Lshortfile)
|
||||
|
||||
@ -10,6 +10,7 @@ import (
|
||||
|
||||
"github.com/crusttech/crust/internal/config"
|
||||
"github.com/crusttech/crust/internal/metrics"
|
||||
"github.com/crusttech/crust/internal/version"
|
||||
)
|
||||
|
||||
func mountRoutes(r chi.Router, opts *config.HTTP, mounts ...func(r chi.Router)) {
|
||||
@ -30,6 +31,7 @@ func mountSystemRoutes(r chi.Router, opts *config.HTTP) {
|
||||
r.Handle("/metrics", metrics.Handler())
|
||||
}
|
||||
r.Mount("/debug", middleware.Profiler())
|
||||
r.Get("/version", version.HttpHandler)
|
||||
}
|
||||
|
||||
func printRoutes(r chi.Router, opts *config.HTTP) {
|
||||
|
||||
19
internal/version/version.go
Normal file
19
internal/version/version.go
Normal file
@ -0,0 +1,19 @@
|
||||
package version
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/titpetric/factory/resputil"
|
||||
)
|
||||
|
||||
var (
|
||||
BuildTime = "undefined"
|
||||
Version = "undefined"
|
||||
)
|
||||
|
||||
func HttpHandler(w http.ResponseWriter, r *http.Request) {
|
||||
resputil.JSON(w, struct {
|
||||
BuildTime string `json:"buildTime"`
|
||||
Version string `json:"version"`
|
||||
}{BuildTime, Version})
|
||||
}
|
||||
@ -10,6 +10,7 @@ import (
|
||||
|
||||
"github.com/crusttech/crust/internal/config"
|
||||
"github.com/crusttech/crust/internal/metrics"
|
||||
"github.com/crusttech/crust/internal/version"
|
||||
)
|
||||
|
||||
func mountRoutes(r chi.Router, opts *config.HTTP, mounts ...func(r chi.Router)) {
|
||||
@ -32,6 +33,7 @@ func mountSystemRoutes(r chi.Router, opts *config.HTTP) {
|
||||
r.Handle("/metrics", metrics.Handler())
|
||||
}
|
||||
r.Mount("/debug", middleware.Profiler())
|
||||
r.Get("/version", version.HttpHandler)
|
||||
}
|
||||
|
||||
func printRoutes(r chi.Router, opts *config.HTTP) {
|
||||
|
||||
@ -4,7 +4,6 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"github.com/davecgh/go-spew/spew"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/titpetric/factory"
|
||||
|
||||
@ -121,8 +120,6 @@ func (svc *channel) preloadExtras(cc types.ChannelSet) (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
spew.Dump(cc.FindById(55955117148471560))
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user