11version : " 3"
22
3+ # This taskfile is ideally meant to be project agnostic and could be dropped in
4+ # on other Go projects with minimal or no changes.
5+ #
6+ # To use it simply add the following lines to your main taskfile:
7+ # includes:
8+ # dist: ./DistTasks.yml
9+ #
10+ # The following variables must be declared in the including taskfile for the
11+ # build process to work correctly:
12+ # * DIST_DIR: the folder that will contain the final binaries and packages
13+ # * PROJECT_NAME: the name of the project, used in package name
14+ # * VERSION: the version of the project, used in package name and checksum file
15+ # * LD_FLAGS: flags used at build time
16+ #
17+ # The project MUST contain a LICENSE.txt file in the root folder or packaging will fail.
18+
319tasks :
420 all :
521 desc : Build for distribution for all platforms
1834 dir : " {{ .DIST_DIR }}"
1935 cmds :
2036 - |
21- docker run -v `pwd`/..:/home/lint -w /home/lint \
37+ docker run -v `pwd`/..:/home/build -w /home/build \
2238 -e CGO_ENABLED=1 \
2339 {{ .CONTAINER }}:{{ .CONTAINER_TAG }} \
2440 --build-cmd "{{ .BUILD_COMMAND }}" \
2945
3046 vars :
3147 PLATFORM_DIR : " {{ .PROJECT_NAME }}_windows_386"
32- BUILD_COMMAND : " go build -o {{ .DIST_DIR }}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }}.exe {{ .DIST_LDFLAGS }}"
48+ BUILD_COMMAND : " go build -o {{ .DIST_DIR }}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }}.exe {{ .LDFLAGS }}"
3349 BUILD_PLATFORM : " windows/386"
3450 CONTAINER_TAG : " {{ .GO_VERSION }}-main"
3551 PACKAGE_PLATFORM : " Windows_32bit"
4056 dir : " {{ .DIST_DIR }}"
4157 cmds :
4258 - |
43- docker run -v `pwd`/..:/home/lint -w /home/lint \
59+ docker run -v `pwd`/..:/home/build -w /home/build \
4460 -e CGO_ENABLED=1 \
4561 {{ .CONTAINER }}:{{ .CONTAINER_TAG }} \
4662 --build-cmd "{{ .BUILD_COMMAND }}" \
5167
5268 vars :
5369 PLATFORM_DIR : " {{ .PROJECT_NAME }}_windows_amd64"
54- BUILD_COMMAND : " go build -o {{ .DIST_DIR }}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }}.exe {{ .DIST_LDFLAGS }}"
70+ BUILD_COMMAND : " go build -o {{ .DIST_DIR }}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }}.exe {{ .LDFLAGS }}"
5571 BUILD_PLATFORM : " windows/amd64"
5672 CONTAINER_TAG : " {{ .GO_VERSION }}-main"
5773 PACKAGE_PLATFORM : " Windows_64bit"
6278 dir : " {{ .DIST_DIR }}"
6379 cmds :
6480 - |
65- docker run -v `pwd`/..:/home/lint -w /home/lint \
81+ docker run -v `pwd`/..:/home/build -w /home/build \
6682 -e CGO_ENABLED=1 \
6783 {{ .CONTAINER }}:{{ .CONTAINER_TAG }} \
6884 --build-cmd "{{ .BUILD_COMMAND }}" \
7389
7490 vars :
7591 PLATFORM_DIR : " {{ .PROJECT_NAME }}_linux_amd32"
76- BUILD_COMMAND : " go build -o {{ .DIST_DIR }}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }} {{ .DIST_LDFLAGS }}"
92+ BUILD_COMMAND : " go build -o {{ .DIST_DIR }}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }} {{ .LDFLAGS }}"
7793 BUILD_PLATFORM : " linux/386"
7894 CONTAINER_TAG : " {{ .GO_VERSION }}-main"
7995 PACKAGE_PLATFORM : " Linux_32bit"
@@ -84,7 +100,7 @@ tasks:
84100 dir : " {{ .DIST_DIR }}"
85101 cmds :
86102 - |
87- docker run -v `pwd`/..:/home/lint -w /home/lint \
103+ docker run -v `pwd`/..:/home/build -w /home/build \
88104 -e CGO_ENABLED=1 \
89105 {{ .CONTAINER }}:{{ .CONTAINER_TAG }} \
90106 --build-cmd "{{ .BUILD_COMMAND }}" \
@@ -95,7 +111,7 @@ tasks:
95111
96112 vars :
97113 PLATFORM_DIR : " {{ .PROJECT_NAME }}_linux_amd64"
98- BUILD_COMMAND : " go build -o {{ .DIST_DIR }}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }} {{ .DIST_LDFLAGS }}"
114+ BUILD_COMMAND : " go build -o {{ .DIST_DIR }}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }} {{ .LDFLAGS }}"
99115 BUILD_PLATFORM : " linux/amd64"
100116 CONTAINER_TAG : " {{ .GO_VERSION }}-main"
101117 PACKAGE_PLATFORM : " Linux_64bit"
@@ -106,7 +122,7 @@ tasks:
106122 dir : " {{ .DIST_DIR }}"
107123 cmds :
108124 - |
109- docker run -v `pwd`/..:/home/lint -w /home/lint \
125+ docker run -v `pwd`/..:/home/build -w /home/build \
110126 -e CGO_ENABLED=1 \
111127 {{ .CONTAINER }}:{{ .CONTAINER_TAG }} \
112128 --build-cmd "{{ .BUILD_COMMAND }}" \
@@ -117,7 +133,7 @@ tasks:
117133
118134 vars :
119135 PLATFORM_DIR : " {{ .PROJECT_NAME }}_linux_arm_7"
120- BUILD_COMMAND : " go build -o {{ .DIST_DIR }}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }} {{ .DIST_LDFLAGS }}"
136+ BUILD_COMMAND : " go build -o {{ .DIST_DIR }}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }} {{ .LDFLAGS }}"
121137 BUILD_PLATFORM : " linux/armv7"
122138 CONTAINER_TAG : " {{ .GO_VERSION }}-arm"
123139 PACKAGE_PLATFORM : " Linux_ARMv7"
@@ -128,7 +144,7 @@ tasks:
128144 dir : " {{ .DIST_DIR }}"
129145 cmds :
130146 - |
131- docker run -v `pwd`/..:/home/lint -w /home/lint \
147+ docker run -v `pwd`/..:/home/build -w /home/build \
132148 -e CGO_ENABLED=1 \
133149 {{ .CONTAINER }}:{{ .CONTAINER_TAG }} \
134150 --build-cmd "{{ .BUILD_COMMAND }}" \
@@ -139,7 +155,7 @@ tasks:
139155
140156 vars :
141157 PLATFORM_DIR : " {{ .PROJECT_NAME }}_linux_arm_6"
142- BUILD_COMMAND : " go build -o {{ .DIST_DIR }}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }} {{ .DIST_LDFLAGS }}"
158+ BUILD_COMMAND : " go build -o {{ .DIST_DIR }}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }} {{ .LDFLAGS }}"
143159 BUILD_PLATFORM : " linux/armv6"
144160 CONTAINER_TAG : " {{ .GO_VERSION }}-arm"
145161 PACKAGE_PLATFORM : " Linux_ARMv6"
@@ -150,7 +166,7 @@ tasks:
150166 dir : " {{ .DIST_DIR }}"
151167 cmds :
152168 - |
153- docker run -v `pwd`/..:/home/lint -w /home/lint \
169+ docker run -v `pwd`/..:/home/build -w /home/build \
154170 -e CGO_ENABLED=1 \
155171 {{ .CONTAINER }}:{{ .CONTAINER_TAG }} \
156172 --build-cmd "{{ .BUILD_COMMAND }}" \
@@ -161,7 +177,7 @@ tasks:
161177
162178 vars :
163179 PLATFORM_DIR : " {{ .PROJECT_NAME }}_linux_arm_6"
164- BUILD_COMMAND : " go build -o {{ .DIST_DIR }}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }} {{ .DIST_LDFLAGS }}"
180+ BUILD_COMMAND : " go build -o {{ .DIST_DIR }}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }} {{ .LDFLAGS }}"
165181 BUILD_PLATFORM : " linux/arm64"
166182 CONTAINER_TAG : " {{ .GO_VERSION }}-arm"
167183 PACKAGE_PLATFORM : " Linux_ARM64"
@@ -172,7 +188,7 @@ tasks:
172188 dir : " {{ .DIST_DIR }}"
173189 cmds :
174190 - |
175- docker run -v `pwd`/..:/home/lint -w /home/lint \
191+ docker run -v `pwd`/..:/home/build -w /home/build \
176192 -e CGO_ENABLED=1 \
177193 {{ .CONTAINER }}:{{ .CONTAINER_TAG }} \
178194 --build-cmd "{{ .BUILD_COMMAND }}" \
@@ -183,25 +199,13 @@ tasks:
183199
184200 vars :
185201 PLATFORM_DIR : " {{ .PROJECT_NAME }}_osx_darwin_amd64"
186- BUILD_COMMAND : " go build -o {{ .DIST_DIR }}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }} {{ .DIST_LDFLAGS }}"
202+ BUILD_COMMAND : " go build -o {{ .DIST_DIR }}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }} {{ .LDFLAGS }}"
187203 BUILD_PLATFORM : " darwin/amd64"
188204 CONTAINER_TAG : " {{ .GO_VERSION }}-darwin"
189205 PACKAGE_PLATFORM : " macOS_64bit"
190206 PACKAGE_NAME : " {{ .PROJECT_NAME }}_{{ .VERSION }}_{{ .PACKAGE_PLATFORM }}.tar.gz"
191207
192208vars :
193- TAG :
194- sh : echo "`git describe --tags --abbrev=0 2> /dev/null`"
195- TIMESTAMP_SHORT :
196- sh : echo "{{now | date "20060102"}}"
197- VERSION : " {{if .CUSTOM_VERSION}}{{.CUSTOM_VERSION}}-{{.TIMESTAMP_SHORT}}{{else}}{{.TAG}}{{end}}"
198- DIST_LDFLAGS : >-
199- -ldflags
200- '
201- -X {{ .CONFIGURATION_PACKAGE }}.version={{.TAG}}
202- -X {{ .CONFIGURATION_PACKAGE }}.commit={{.COMMIT}}
203- -X {{ .CONFIGURATION_PACKAGE }}.buildTimestamp={{.TIMESTAMP}}
204- '
205209 CONTAINER : " docker.elastic.co/beats-dev/golang-crossbuild"
206210 GO_VERSION : " 1.14.7"
207211 CHECKSUM_FILE : " {{ .VERSION }}-checksums.txt"
0 commit comments