1
1
# Package configuration
2
2
PROJECT = ofelia
3
3
COMMANDS = ofelia
4
- DEPENDENCIES = golang.org/x/tools/cmd/cover
5
- PACKAGES = github.com/mcuadros/ofelia/core \
6
- github.com/mcuadros/ofelia/middlewares \
7
- github.com/mcuadros/ofelia/cli
8
4
9
5
# Environment
10
6
BASE_PATH := $(shell pwd)
11
- BUILD_PATH := $(BASE_PATH ) /build
7
+ BUILD_PATH := $(BASE_PATH ) /bin
12
8
SHA1 := $(shell git log --format='% H' -n 1 | cut -c1-10)
13
9
BUILD := $(shell date +"% m-% d-% Y_% H_% M_% S")
14
10
BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
@@ -22,10 +18,8 @@ PKG_TAG = latest
22
18
# Go parameters
23
19
GOCMD = go
24
20
GOBUILD = $(GOCMD ) build
25
- GOCLEAN = $(GOCMD ) clean
26
- GOGET = $(GOCMD ) get -v
27
- GOTEST = $(GOCMD ) test -v
28
21
GHRELEASE = github-release
22
+ LDFLAGS = -ldflags "-X main.version=$(BRANCH ) -X main.build=$(BUILD ) "
29
23
30
24
# Coverage
31
25
COVERAGE_REPORT = coverage.txt
@@ -38,38 +32,39 @@ endif
38
32
# Rules
39
33
all : clean packages
40
34
41
- dependencies :
42
- @ $( GOGET ) -t ./... ; \
43
- for i in $( DEPENDENCIES ) ; do $( GOGET ) $$ i ; done
35
+ .PHONY : test
36
+ test :
37
+ @go test -v ./...
44
38
45
- test : dependencies
46
- @for p in $(PACKAGES ) ; do \
47
- $(GOTEST ) $$ {p}; \
48
- done ;
39
+ .PHONY : test-coverage
40
+ test-coverage :
41
+ @echo " mode: $( COVERAGE_MODE) " > $(COVERAGE_REPORT ) ;
42
+ @go test -v ./... $$ {p} -coverprofile=tmp_$(COVERAGE_REPORT ) -covermode=$(COVERAGE_MODE ) ;
43
+ cat tmp_$(COVERAGE_REPORT ) | grep -v " mode: $( COVERAGE_MODE) " >> $(COVERAGE_REPORT ) ;
44
+ rm tmp_$(COVERAGE_REPORT ) ;
49
45
50
- test-coverage : dependencies
51
- @echo " mode: $( COVERAGE_MODE) " > $(COVERAGE_REPORT ) ; \
52
- for p in $( PACKAGES) ; do \
53
- $(GOTEST ) $$ {p} -coverprofile=tmp_$(COVERAGE_REPORT ) -covermode=$(COVERAGE_MODE ) ; \
54
- cat tmp_$(COVERAGE_REPORT ) | grep -v " mode: $( COVERAGE_MODE) " >> $(COVERAGE_REPORT ) ; \
55
- rm tmp_$(COVERAGE_REPORT ) ; \
56
- done ;
46
+ build :
47
+ go build -o $(BUILD_PATH ) /$(PROJECT ) $$ {cmd}.go;
57
48
58
- packages : dependencies
49
+ packages :
59
50
@for os in $(PKG_OS ) ; do \
60
51
for arch in $( PKG_ARCH) ; do \
61
52
cd $(BASE_PATH ) ; \
62
- mkdir -p $(BUILD_PATH ) /$(PROJECT ) _$$ {os}_$$ {arch}; \
53
+ FINAL_PATH=$(BUILD_PATH ) /$(PROJECT ) _$$ {os}_$$ {arch}; \
54
+ mkdir -p $$ {FINAL_PATH}; \
63
55
for cmd in $( COMMANDS) ; do \
64
- GOOS=$$ {os} GOARCH=$$ {arch} $(GOCMD ) build -ldflags " -X main.version=$( BRANCH) -X main.build=$( BUILD) " -o $(BUILD_PATH ) /$(PROJECT ) _$$ {os}_$$ {arch}/$$ {cmd} $$ {cmd}.go; \
56
+ BINARY=$(BUILD_PATH ) /$(PROJECT ) _$$ {os}_$$ {arch}/$$ {cmd}; \
57
+ GOOS=$$ {os} GOARCH=$$ {arch} $(GOCMD ) build -ldflags " -X main.version=$( BRANCH) -X main.build=$( BUILD) " -o $$ {BINARY} $$ {cmd}.go; \
58
+ du -h $$ {BINARY}; \
65
59
done ; \
66
60
for content in $( PKG_CONTENT) ; do \
67
- cp -rf $$ {content} $(BUILD_PATH ) /$(PROJECT ) _$$ {os}_$$ {arch}/; \
61
+ cp -rfv $$ {content} $(BUILD_PATH ) /$(PROJECT ) _$$ {os}_$$ {arch}/; \
68
62
done ; \
69
- cd $(BUILD_PATH ) && tar -cvzf $(BUILD_PATH ) /$(PROJECT ) _$(BRANCH ) _$$ {os}_$$ {arch}.tar.gz $(PROJECT ) _$$ {os}_$$ {arch}/; \
63
+ TAR_PATH=$(BUILD_PATH ) /$(PROJECT ) _$(BRANCH ) _$$ {os}_$$ {arch}.tar.gz; \
64
+ cd $(BUILD_PATH ) && tar -cvzf $$ {TAR_PATH} $(PROJECT ) _$$ {os}_$$ {arch}/; \
65
+ du -h $$ {TAR_PATH}; \
70
66
done ; \
71
67
done ;
72
68
73
69
clean :
74
- @rm -rf $(BUILD_PATH ) ; \
75
- $(GOCLEAN ) .
70
+ @rm -rf $(BUILD_PATH )
0 commit comments