Skip to content

Commit 76126a6

Browse files
author
Randall C. O'Reilly
committed
add std Makefile including release target for easily making new release numbers
1 parent 1809131 commit 76126a6

File tree

2 files changed

+83
-0
lines changed

2 files changed

+83
-0
lines changed

Makefile

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# Basic Go makefile
2+
3+
GOCMD=go
4+
GOBUILD=$(GOCMD) build
5+
GOCLEAN=$(GOCMD) clean
6+
GOTEST=$(GOCMD) test
7+
GOGET=$(GOCMD) get
8+
9+
DIRS=`go list ./...`
10+
11+
all: build
12+
13+
build:
14+
@echo "GO111MODULE = $(value GO111MODULE)"
15+
$(GOBUILD) -v $(DIRS)
16+
17+
test:
18+
@echo "GO111MODULE = $(value GO111MODULE)"
19+
$(GOTEST) -v $(DIRS)
20+
21+
clean:
22+
@echo "GO111MODULE = $(value GO111MODULE)"
23+
$(GOCLEAN) ./...
24+
25+
fmts:
26+
gofmt -s -w .
27+
28+
vet:
29+
@echo "GO111MODULE = $(value GO111MODULE)"
30+
$(GOCMD) vet $(DIRS) | grep -v unkeyed
31+
32+
tidy: export GO111MODULE = on
33+
tidy:
34+
@echo "GO111MODULE = $(value GO111MODULE)"
35+
go mod tidy
36+
37+
mod-update: export GO111MODULE = on
38+
mod-update:
39+
@echo "GO111MODULE = $(value GO111MODULE)"
40+
go get -u ./...
41+
go mod tidy
42+
43+
# gopath-update is for GOPATH to get most things updated.
44+
# need to call it in a target executable directory
45+
gopath-update: export GO111MODULE = off
46+
gopath-update:
47+
@echo "GO111MODULE = $(value GO111MODULE)"
48+
go get -u ./...
49+
50+
# NOTE: MUST update version number here prior to running 'make release' and edit this file!
51+
VERS=v0.3.2
52+
PACKAGE=main
53+
GIT_COMMIT=`git rev-parse --short HEAD`
54+
VERS_DATE=`date -u +%Y-%m-%d\ %H:%M`
55+
VERS_FILE=version.go
56+
57+
release:
58+
/bin/rm -f $(VERS_FILE)
59+
@echo "// WARNING: auto-generated by Makefile release target -- run 'make release' to update" > $(VERS_FILE)
60+
@echo "" >> $(VERS_FILE)
61+
@echo "package $(PACKAGE)" >> $(VERS_FILE)
62+
@echo "" >> $(VERS_FILE)
63+
@echo "const (" >> $(VERS_FILE)
64+
@echo " Version = \"$(VERS)\"" >> $(VERS_FILE)
65+
@echo " GitCommit = \"$(GIT_COMMIT)\" // the commit JUST BEFORE the release" >> $(VERS_FILE)
66+
@echo " VersionDate = \"$(VERS_DATE)\" // UTC" >> $(VERS_FILE)
67+
@echo ")" >> $(VERS_FILE)
68+
@echo "" >> $(VERS_FILE)
69+
/bin/cat $(VERS_FILE)
70+
git commit -am "$(VERS) release"
71+
git tag -a $(VERS) -m "$(VERS) release"
72+
git push
73+
git push origin --tags
74+

version.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// WARNING: auto-generated by Makefile release target -- run 'make release' to update
2+
3+
package main
4+
5+
const (
6+
Version = "v0.3.2"
7+
GitCommit = "59cf4a4" // the commit JUST BEFORE the release
8+
VersionDate = "2020-11-23 23:26" // UTC
9+
)

0 commit comments

Comments
 (0)