Просмотр исходного кода

Remove autogeneration of version.go

tags/0.15.1^2^2
9seconds 7 лет назад
Родитель
Сommit
ea97bf51c8
3 измененных файлов: 12 добавлений и 25 удалений
  1. 10
    11
      Makefile
  2. 2
    2
      main.go
  3. 0
    12
      scripts/generate_version.sh

+ 10
- 11
Makefile Просмотреть файл

3
 APP_NAME     := $(IMAGE_NAME)
3
 APP_NAME     := $(IMAGE_NAME)
4
 
4
 
5
 CC_BINARIES  := $(shell bash -c "echo -n $(APP_NAME)-{linux,freebsd,openbsd}-{386,amd64} $(APP_NAME)-linux-{arm,arm64}")
5
 CC_BINARIES  := $(shell bash -c "echo -n $(APP_NAME)-{linux,freebsd,openbsd}-{386,amd64} $(APP_NAME)-linux-{arm,arm64}")
6
-APP_DEPS     := version.go
7
 
6
 
8
 GOLANGCI_LINT_VERSION := v1.10.2
7
 GOLANGCI_LINT_VERSION := v1.10.2
9
 
8
 
10
-COMMON_BUILD_FLAGS := -ldflags="-s -w"
9
+VERSION_GO         := $(shell go version)
10
+VERSION_DATE       := $(shell date -Ru)
11
+VERSION_TAG        := $(shell git describe --long --always)
12
+COMMON_BUILD_FLAGS := -ldflags="-s -w -X 'main.version=$(VERSION_TAG) ($(VERSION_GO)) [$(VERSION_DATE)]'"
11
 
13
 
12
 MOD_ON  := env GO111MODULE=on
14
 MOD_ON  := env GO111MODULE=on
13
 MOD_OFF := env GO111MODULE=auto
15
 MOD_OFF := env GO111MODULE=auto
14
 
16
 
15
 # -----------------------------------------------------------------------------
17
 # -----------------------------------------------------------------------------
16
 
18
 
17
-$(APP_NAME): $(APP_DEPS)
19
+$(APP_NAME):
18
 	@$(MOD_ON) go build $(COMMON_BUILD_FLAGS) -o "$(APP_NAME)"
20
 	@$(MOD_ON) go build $(COMMON_BUILD_FLAGS) -o "$(APP_NAME)"
19
 
21
 
20
-static-$(APP_NAME): $(APP_DEPS)
22
+static-$(APP_NAME):
21
 	@$(MOD_ON) env CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo $(COMMON_BUILD_FLAGS) -o "$(APP_NAME)"
23
 	@$(MOD_ON) env CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo $(COMMON_BUILD_FLAGS) -o "$(APP_NAME)"
22
 
24
 
23
 $(APP_NAME)-%: GOOS=$(shell echo -n "$@" | sed 's?$(APP_NAME)-??' | cut -f1 -d-)
25
 $(APP_NAME)-%: GOOS=$(shell echo -n "$@" | sed 's?$(APP_NAME)-??' | cut -f1 -d-)
24
 $(APP_NAME)-%: GOARCH=$(shell echo -n "$@" | sed 's?$(APP_NAME)-??' | cut -f2 -d-)
26
 $(APP_NAME)-%: GOARCH=$(shell echo -n "$@" | sed 's?$(APP_NAME)-??' | cut -f2 -d-)
25
-$(APP_NAME)-%: $(APP_DEPS) ccbuilds
27
+$(APP_NAME)-%: ccbuilds
26
 	@$(MOD_ON) env "GOOS=$(GOOS)" "GOARCH=$(GOARCH)" \
28
 	@$(MOD_ON) env "GOOS=$(GOOS)" "GOARCH=$(GOARCH)" \
27
 		go build \
29
 		go build \
28
 		$(COMMON_BUILD_FLAGS) \
30
 		$(COMMON_BUILD_FLAGS) \
31
 ccbuilds:
33
 ccbuilds:
32
 	@rm -rf ./ccbuilds && mkdir -p ./ccbuilds
34
 	@rm -rf ./ccbuilds && mkdir -p ./ccbuilds
33
 
35
 
34
-version.go:
35
-	@$(MOD_ON) go generate main.go
36
-
37
 vendor: go.mod go.sum
36
 vendor: go.mod go.sum
38
 	@$(MOD_ON) go mod vendor
37
 	@$(MOD_ON) go mod vendor
39
 
38
 
53
 	@rm -rf "$(CC_DIR)" && mkdir -p "$(CC_DIR)"
52
 	@rm -rf "$(CC_DIR)" && mkdir -p "$(CC_DIR)"
54
 
53
 
55
 .PHONY: test
54
 .PHONY: test
56
-test: vendor $(APP_DEPS)
55
+test: vendor
57
 	@$(MOD_ON) go test -v ./...
56
 	@$(MOD_ON) go test -v ./...
58
 
57
 
59
 .PHONY: lint
58
 .PHONY: lint
60
-lint: vendor $(APP_DEPS)
59
+lint: vendor
61
 	@$(MOD_OFF) golangci-lint run
60
 	@$(MOD_OFF) golangci-lint run
62
 
61
 
63
 .PHONY: critic
62
 .PHONY: critic
64
-critic: vendor $(APP_DEPS)
63
+critic: vendor
65
 	@$(MOD_OFF) gocritic check-project "$(ROOT_DIR)"
64
 	@$(MOD_OFF) gocritic check-project "$(ROOT_DIR)"
66
 
65
 
67
 .PHONY: clean
66
 .PHONY: clean

+ 2
- 2
main.go Просмотреть файл

1
 package main
1
 package main
2
 
2
 
3
-//go:generate scripts/generate_version.sh
4
-
5
 import (
3
 import (
6
 	"encoding/json"
4
 	"encoding/json"
7
 	"fmt"
5
 	"fmt"
22
 	"github.com/9seconds/mtg/stats"
20
 	"github.com/9seconds/mtg/stats"
23
 )
21
 )
24
 
22
 
23
+var version = "dev" // this has to be set by build ld flags
24
+
25
 var (
25
 var (
26
 	app = kingpin.New("mtg", "Simple MTPROTO proxy.")
26
 	app = kingpin.New("mtg", "Simple MTPROTO proxy.")
27
 
27
 

+ 0
- 12
scripts/generate_version.sh Просмотреть файл

1
-#!/bin/sh
2
-set -eu
3
-
4
-PROJECT_DIR="$(git rev-parse --show-toplevel)"
5
-OUTPUT_FILE="${PROJECT_DIR}/version.go"
6
-
7
-cat > "$OUTPUT_FILE" <<EOF
8
-package main
9
-// autogenerated by $(basename "$0") on $(date -Ru)
10
-
11
-const version = "$(git describe --long --always) ($(go version)) [$(date -Ru)]"
12
-EOF

Загрузка…
Отмена
Сохранить