Skip to content

Commit 7c8454b

Browse files
authored
Updated DistTask.yml / Add support for macos_ARM64 builds (#77)
1 parent f1c2b48 commit 7c8454b

File tree

1 file changed

+48
-35
lines changed

1 file changed

+48
-35
lines changed

Diff for: DistTasks.yml

+48-35
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ version: "3"
1919

2020
vars:
2121
CONTAINER: "docker.elastic.co/beats-dev/golang-crossbuild"
22-
GO_VERSION: "1.18.5"
22+
GO_VERSION: "1.21.6"
2323
CHECKSUM_FILE: "{{.VERSION}}-checksums.txt"
2424

2525
tasks:
@@ -34,21 +34,20 @@ tasks:
3434
- task: Linux_ARMv7
3535
- task: Linux_ARM64
3636
- task: macOS_64bit
37+
- task: macOS_ARM64
3738

3839
Windows_32bit:
3940
desc: Builds Windows 32 bit binaries
4041
dir: "{{.DIST_DIR}}"
4142
cmds:
4243
- |
43-
mkdir {{.PLATFORM_DIR}}
44-
cp ../LICENSE.txt {{.PLATFORM_DIR}}/
4544
docker run -v `pwd`/..:/home/build -w /home/build \
46-
-e CGO_ENABLED=1 \
45+
-e CGO_ENABLED=0 \
4746
{{.CONTAINER}}:{{.CONTAINER_TAG}} \
4847
--build-cmd "{{.BUILD_COMMAND}}" \
4948
-p "{{.BUILD_PLATFORM}}"
5049
51-
zip {{.PACKAGE_NAME}} {{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe {{.PLATFORM_DIR}}/LICENSE.txt
50+
zip {{.PACKAGE_NAME}} {{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe ../LICENSE.txt -j
5251
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
5352
5453
vars:
@@ -64,15 +63,13 @@ tasks:
6463
dir: "{{.DIST_DIR}}"
6564
cmds:
6665
- |
67-
mkdir {{.PLATFORM_DIR}}
68-
cp ../LICENSE.txt {{.PLATFORM_DIR}}/
6966
docker run -v `pwd`/..:/home/build -w /home/build \
70-
-e CGO_ENABLED=1 \
67+
-e CGO_ENABLED=0 \
7168
{{.CONTAINER}}:{{.CONTAINER_TAG}} \
7269
--build-cmd "{{.BUILD_COMMAND}}" \
7370
-p "{{.BUILD_PLATFORM}}"
7471
75-
zip {{.PACKAGE_NAME}} {{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe {{.PLATFORM_DIR}}/LICENSE.txt
72+
zip {{.PACKAGE_NAME}} {{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe ../LICENSE.txt -j
7673
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
7774
7875
vars:
@@ -88,15 +85,13 @@ tasks:
8885
dir: "{{.DIST_DIR}}"
8986
cmds:
9087
- |
91-
mkdir {{.PLATFORM_DIR}}
92-
cp ../LICENSE.txt {{.PLATFORM_DIR}}/
9388
docker run -v `pwd`/..:/home/build -w /home/build \
94-
-e CGO_ENABLED=1 \
89+
-e CGO_ENABLED=0 \
9590
{{.CONTAINER}}:{{.CONTAINER_TAG}} \
9691
--build-cmd "{{.BUILD_COMMAND}}" \
9792
-p "{{.BUILD_PLATFORM}}"
9893
99-
tar cz {{.PLATFORM_DIR}} -f {{.PACKAGE_NAME}}
94+
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
10095
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
10196
10297
vars:
@@ -112,15 +107,13 @@ tasks:
112107
dir: "{{.DIST_DIR}}"
113108
cmds:
114109
- |
115-
mkdir {{.PLATFORM_DIR}}
116-
cp ../LICENSE.txt {{.PLATFORM_DIR}}/
117110
docker run -v `pwd`/..:/home/build -w /home/build \
118-
-e CGO_ENABLED=1 \
111+
-e CGO_ENABLED=0 \
119112
{{.CONTAINER}}:{{.CONTAINER_TAG}} \
120113
--build-cmd "{{.BUILD_COMMAND}}" \
121114
-p "{{.BUILD_PLATFORM}}"
122115
123-
tar cz {{.PLATFORM_DIR}} -f {{.PACKAGE_NAME}}
116+
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
124117
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
125118
126119
vars:
@@ -136,15 +129,13 @@ tasks:
136129
dir: "{{.DIST_DIR}}"
137130
cmds:
138131
- |
139-
mkdir {{.PLATFORM_DIR}}
140-
cp ../LICENSE.txt {{.PLATFORM_DIR}}/
141132
docker run -v `pwd`/..:/home/build -w /home/build \
142-
-e CGO_ENABLED=1 \
133+
-e CGO_ENABLED=0 \
143134
{{.CONTAINER}}:{{.CONTAINER_TAG}} \
144135
--build-cmd "{{.BUILD_COMMAND}}" \
145136
-p "{{.BUILD_PLATFORM}}"
146137
147-
tar cz {{.PLATFORM_DIR}} -f {{.PACKAGE_NAME}}
138+
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
148139
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
149140
150141
vars:
@@ -160,15 +151,13 @@ tasks:
160151
dir: "{{.DIST_DIR}}"
161152
cmds:
162153
- |
163-
mkdir {{.PLATFORM_DIR}}
164-
cp ../LICENSE.txt {{.PLATFORM_DIR}}/
165154
docker run -v `pwd`/..:/home/build -w /home/build \
166-
-e CGO_ENABLED=1 \
155+
-e CGO_ENABLED=0 \
167156
{{.CONTAINER}}:{{.CONTAINER_TAG}} \
168157
--build-cmd "{{.BUILD_COMMAND}}" \
169158
-p "{{.BUILD_PLATFORM}}"
170159
171-
tar cz {{.PLATFORM_DIR}} -f {{.PACKAGE_NAME}}
160+
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
172161
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
173162
174163
vars:
@@ -203,7 +192,11 @@ tasks:
203192
#
204193
# Until there is a fix released we must use a recent gcc for Linux_ARMv6 build, so for this
205194
# build we select the debian10 based container.
206-
CONTAINER_TAG: "{{.GO_VERSION}}-armel-debian10"
195+
#
196+
# BTW:
197+
# - debian10 is not available
198+
# - since we do not use CGO this time, we revert to the old debian9 based container.
199+
CONTAINER_TAG: "{{.GO_VERSION}}-armel-debian9"
207200
PACKAGE_PLATFORM: "Linux_ARMv6"
208201
PACKAGE_NAME: "{{.PROJECT_NAME}}_{{.VERSION}}_{{.PACKAGE_PLATFORM}}.tar.gz"
209202

@@ -212,15 +205,13 @@ tasks:
212205
dir: "{{.DIST_DIR}}"
213206
cmds:
214207
- |
215-
mkdir {{.PLATFORM_DIR}}
216-
cp ../LICENSE.txt {{.PLATFORM_DIR}}/
217208
docker run -v `pwd`/..:/home/build -w /home/build \
218-
-e CGO_ENABLED=1 \
209+
-e CGO_ENABLED=0 \
219210
{{.CONTAINER}}:{{.CONTAINER_TAG}} \
220211
--build-cmd "{{.BUILD_COMMAND}}" \
221212
-p "{{.BUILD_PLATFORM}}"
222213
223-
tar cz {{.PLATFORM_DIR}} -f {{.PACKAGE_NAME}}
214+
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
224215
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
225216
226217
vars:
@@ -235,16 +226,15 @@ tasks:
235226
desc: Builds Mac OS X 64 bit binaries
236227
dir: "{{.DIST_DIR}}"
237228
cmds:
229+
# "git config safe.directory" is required until this is fixed https://github.com/elastic/golang-crossbuild/issues/232
238230
- |
239-
mkdir {{.PLATFORM_DIR}}
240-
cp ../LICENSE.txt {{.PLATFORM_DIR}}/
241231
docker run -v `pwd`/..:/home/build -w /home/build \
242-
-e CGO_ENABLED=1 \
232+
-e CGO_ENABLED=0 \
243233
{{.CONTAINER}}:{{.CONTAINER_TAG}} \
244-
--build-cmd "{{.BUILD_COMMAND}}" \
234+
--build-cmd "git config --global --add safe.directory /home/build && {{.BUILD_COMMAND}}" \
245235
-p "{{.BUILD_PLATFORM}}"
246236
247-
tar cz {{.PLATFORM_DIR}} -f {{.PACKAGE_NAME}}
237+
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
248238
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
249239
250240
vars:
@@ -267,3 +257,26 @@ tasks:
267257
CONTAINER_TAG: "{{.GO_VERSION}}-darwin-debian10"
268258
PACKAGE_PLATFORM: "macOS_64bit"
269259
PACKAGE_NAME: "{{.PROJECT_NAME}}_{{.VERSION}}_{{.PACKAGE_PLATFORM}}.tar.gz"
260+
261+
macOS_ARM64:
262+
desc: Builds Mac OS X ARM64 binaries
263+
dir: "{{.DIST_DIR}}"
264+
cmds:
265+
# "git config safe.directory" is required until this is fixed https://github.com/elastic/golang-crossbuild/issues/232
266+
- |
267+
docker run -v `pwd`/..:/home/build -w /home/build \
268+
-e CGO_ENABLED=0 \
269+
{{.CONTAINER}}:{{.CONTAINER_TAG}} \
270+
--build-cmd "git config --global --add safe.directory /home/build && {{.BUILD_COMMAND}}" \
271+
-p "{{.BUILD_PLATFORM}}"
272+
273+
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
274+
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
275+
276+
vars:
277+
PLATFORM_DIR: "{{.PROJECT_NAME}}_osx_darwin_arm64"
278+
BUILD_COMMAND: "go build -o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} {{.LDFLAGS}}"
279+
BUILD_PLATFORM: "darwin/arm64"
280+
CONTAINER_TAG: "{{.GO_VERSION}}-darwin-arm64-debian10"
281+
PACKAGE_PLATFORM: "macOS_ARM64"
282+
PACKAGE_NAME: "{{.PROJECT_NAME}}_{{.VERSION}}_{{.PACKAGE_PLATFORM}}.tar.gz"

0 commit comments

Comments
 (0)