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
|
build
|
||||||
codegen
|
codegen
|
||||||
|
var
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
## builder image
|
## builder image
|
||||||
|
|
||||||
FROM golang:1.10-alpine AS builder
|
FROM golang:1.10-alpine AS builder
|
||||||
|
|
||||||
WORKDIR /go/src/github.com/crusttech/crust
|
WORKDIR /go/src/github.com/crusttech/crust
|
||||||
@ -8,18 +7,18 @@ ENV CGO_ENABLED=0
|
|||||||
|
|
||||||
COPY . .
|
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
|
## target image
|
||||||
|
|
||||||
FROM alpine:3.7
|
FROM alpine:3.7
|
||||||
|
|
||||||
ENV PATH="/crust:{$PATH}"
|
ENV PATH="/crust:{$PATH}"
|
||||||
WORKDIR /crust
|
WORKDIR /crust
|
||||||
|
|
||||||
# @todo copy crm/types, migrations
|
|
||||||
|
|
||||||
COPY --from=builder /build/* /crust/
|
COPY --from=builder /build/* /crust/
|
||||||
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
|
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
## builder image
|
## builder image
|
||||||
|
|
||||||
FROM golang:1.10-alpine AS builder
|
FROM golang:1.10-alpine AS builder
|
||||||
|
|
||||||
WORKDIR /go/src/github.com/crusttech/crust
|
WORKDIR /go/src/github.com/crusttech/crust
|
||||||
@ -8,18 +7,18 @@ ENV CGO_ENABLED=0
|
|||||||
|
|
||||||
COPY . .
|
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
|
## target image
|
||||||
|
|
||||||
FROM alpine:3.7
|
FROM alpine:3.7
|
||||||
|
|
||||||
ENV PATH="/crust:{$PATH}"
|
ENV PATH="/crust:{$PATH}"
|
||||||
WORKDIR /crust
|
WORKDIR /crust
|
||||||
|
|
||||||
# @todo copy crm/types, migrations
|
|
||||||
|
|
||||||
COPY --from=builder /build/* /crust/
|
COPY --from=builder /build/* /crust/
|
||||||
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
|
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
## builder image
|
## builder image
|
||||||
|
|
||||||
FROM golang:1.10-alpine AS builder
|
FROM golang:1.10-alpine AS builder
|
||||||
|
|
||||||
WORKDIR /go/src/github.com/crusttech/crust
|
WORKDIR /go/src/github.com/crusttech/crust
|
||||||
@ -8,18 +7,18 @@ ENV CGO_ENABLED=0
|
|||||||
|
|
||||||
COPY . .
|
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
|
## target image
|
||||||
|
|
||||||
FROM alpine:3.7
|
FROM alpine:3.7
|
||||||
|
|
||||||
ENV PATH="/crust:{$PATH}"
|
ENV PATH="/crust:{$PATH}"
|
||||||
WORKDIR /crust
|
WORKDIR /crust
|
||||||
|
|
||||||
# @todo copy crm/types, migrations
|
|
||||||
|
|
||||||
COPY --from=builder /build/* /crust/
|
COPY --from=builder /build/* /crust/
|
||||||
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
|
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/config"
|
||||||
"github.com/crusttech/crust/internal/metrics"
|
"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)) {
|
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.Handle("/metrics", metrics.Handler())
|
||||||
}
|
}
|
||||||
r.Mount("/debug", middleware.Profiler())
|
r.Mount("/debug", middleware.Profiler())
|
||||||
|
r.Get("/version", version.HttpHandler)
|
||||||
}
|
}
|
||||||
|
|
||||||
func printRoutes(r chi.Router, opts *config.HTTP) {
|
func printRoutes(r chi.Router, opts *config.HTTP) {
|
||||||
|
|||||||
@ -8,11 +8,14 @@ import (
|
|||||||
|
|
||||||
"github.com/crusttech/crust/internal/auth"
|
"github.com/crusttech/crust/internal/auth"
|
||||||
"github.com/crusttech/crust/internal/rbac"
|
"github.com/crusttech/crust/internal/rbac"
|
||||||
|
"github.com/crusttech/crust/internal/version"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
config := flags("sam", service.Flags, auth.Flags, rbac.Flags)
|
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 to stdout not stderr
|
||||||
log.SetOutput(os.Stdout)
|
log.SetOutput(os.Stdout)
|
||||||
log.SetFlags(log.LstdFlags | log.Lshortfile)
|
log.SetFlags(log.LstdFlags | log.Lshortfile)
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import (
|
|||||||
|
|
||||||
"github.com/crusttech/crust/internal/config"
|
"github.com/crusttech/crust/internal/config"
|
||||||
"github.com/crusttech/crust/internal/metrics"
|
"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)) {
|
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.Handle("/metrics", metrics.Handler())
|
||||||
}
|
}
|
||||||
r.Mount("/debug", middleware.Profiler())
|
r.Mount("/debug", middleware.Profiler())
|
||||||
|
r.Get("/version", version.HttpHandler)
|
||||||
}
|
}
|
||||||
|
|
||||||
func printRoutes(r chi.Router, opts *config.HTTP) {
|
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/config"
|
||||||
"github.com/crusttech/crust/internal/metrics"
|
"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)) {
|
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.Handle("/metrics", metrics.Handler())
|
||||||
}
|
}
|
||||||
r.Mount("/debug", middleware.Profiler())
|
r.Mount("/debug", middleware.Profiler())
|
||||||
|
r.Get("/version", version.HttpHandler)
|
||||||
}
|
}
|
||||||
|
|
||||||
func printRoutes(r chi.Router, opts *config.HTTP) {
|
func printRoutes(r chi.Router, opts *config.HTTP) {
|
||||||
|
|||||||
@ -4,7 +4,6 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/davecgh/go-spew/spew"
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/titpetric/factory"
|
"github.com/titpetric/factory"
|
||||||
|
|
||||||
@ -121,8 +120,6 @@ func (svc *channel) preloadExtras(cc types.ChannelSet) (err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
spew.Dump(cc.FindById(55955117148471560))
|
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user