Skip to content

Commit bedf9a2

Browse files
committed
feat: enhance build information handling in API
1 parent e3f5a6c commit bedf9a2

3 files changed

Lines changed: 45 additions & 23 deletions

File tree

Makefile

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,13 @@ REPO := github.com/brasilcep/api
1515

1616
build:
1717
@echo "Building version $(VERSION) (commit: $(COMMIT))"
18-
go build -ldflags "-X '$(REPO).api.Version=$(VERSION)' -X '$(REPO).api.Commit=$(COMMIT)' -X '$(REPO).Repo=$(REPO)' -X '$(REPO).Compiler=$(GO_VERSION)'" -o wserver main.go
18+
go build -ldflags "\
19+
-X 'main.Version=$(VERSION)' \
20+
-X 'main.Commit=$(COMMIT)' \
21+
-X 'main.Repo=$(REPO)' \
22+
-X 'main.Compiler=$(GO_VERSION)' \
23+
" -o wserver main.go
24+
1925
test:
2026
go test -v ./......
2127
lint:

api/api.go

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,28 +19,30 @@ import (
1919
"golang.org/x/time/rate"
2020
)
2121

22-
var (
23-
Version = "dev"
24-
Commit = "none"
25-
Repo = "unknown"
26-
Compiler = "unknown"
27-
)
28-
2922
type API struct {
30-
config *viper.Viper
31-
logger *logger.Logger
32-
echo *echo.Echo
23+
config *viper.Viper
24+
logger *logger.Logger
25+
echo *echo.Echo
26+
buildInfo BuildInfo
27+
}
28+
29+
type BuildInfo struct {
30+
Version string
31+
Commit string
32+
Repo string
33+
Compiler string
3334
}
3435

3536
type ErrorResponse struct {
3637
Error string `json:"error"`
3738
}
3839

39-
func NewAPI(config *viper.Viper, logger *logger.Logger) *API {
40+
func NewAPI(config *viper.Viper, logger *logger.Logger, buildInfo BuildInfo) *API {
4041
return &API{
41-
config: config,
42-
logger: logger,
43-
echo: echo.New(),
42+
config: config,
43+
logger: logger,
44+
echo: echo.New(),
45+
buildInfo: buildInfo,
4446
}
4547
}
4648

@@ -137,10 +139,10 @@ func (api *API) Listen() {
137139
}
138140

139141
fmt.Printf("Brasil CEP Webservice - Brazilian Zip Code API")
140-
fmt.Printf("version: %s\n", Version)
141-
fmt.Printf("commit: %s\n", Commit)
142-
fmt.Printf("repo: %s\n", Repo)
143-
fmt.Printf("compiler: %s\n", Compiler)
142+
fmt.Printf("version: %s\n", api.buildInfo.Version)
143+
fmt.Printf("commit: %s\n", api.buildInfo.Commit)
144+
fmt.Printf("repo: %s\n", api.buildInfo.Repo)
145+
fmt.Printf("compiler: %s\n", api.buildInfo.Compiler)
144146
fmt.Printf("\n")
145147

146148
port := api.config.GetInt("api.port")
@@ -204,9 +206,9 @@ func (api *API) health(c echo.Context) error {
204206
Repo string `json:"repo"`
205207
}{
206208
Status: "ok",
207-
Version: Version,
208-
Commit: Commit,
209-
Repo: Repo,
209+
Version: api.buildInfo.Version,
210+
Commit: api.buildInfo.Commit,
211+
Repo: api.buildInfo.Repo,
210212
}
211213

212214
return c.JSON(http.StatusOK, resp)

main.go

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,23 @@ import (
88
"github.com/brasilcep/api/zipcodes"
99
)
1010

11+
var (
12+
Version = "dev"
13+
Commit = "none"
14+
Repo = "unknown"
15+
Compiler = "unknown"
16+
)
17+
1118
func main() {
1219
config := config.NewConfig()
1320

21+
buildInfo := api.BuildInfo{
22+
Version: Version,
23+
Commit: Commit,
24+
Repo: Repo,
25+
Compiler: Compiler,
26+
}
27+
1428
log_level := config.GetString("log.level")
1529

1630
logger := logger.NewLogger(log_level)
@@ -21,7 +35,7 @@ func main() {
2135

2236
switch mode {
2337
case "listen":
24-
api := api.NewAPI(config, logger)
38+
api := api.NewAPI(config, logger, buildInfo)
2539
api.Listen()
2640
case "seed":
2741
dnePath := config.GetString("db.raw.path")

0 commit comments

Comments
 (0)