Skip to content

Commit 31fb8a2

Browse files
committed
uniform DistTask.yml to the assets repository:
- add macos arm64 - differentiate linux arm into linux armv6, and linux armv7
1 parent 756a319 commit 31fb8a2

File tree

1 file changed

+102
-34
lines changed

1 file changed

+102
-34
lines changed

DistTasks.yml

Lines changed: 102 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,25 @@
1+
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/release-go-crosscompile-task/DistTasks.yml
12
version: "3"
23

4+
# This taskfile is ideally meant to be project agnostic and could be dropped in
5+
# on other Go projects with minimal or no changes.
6+
#
7+
# To use it simply add the following lines to your main taskfile:
8+
# includes:
9+
# dist: ./DistTasks.yml
10+
#
11+
# The following variables must be declared in the including taskfile for the
12+
# build process to work correctly:
13+
# * DIST_DIR: the folder that will contain the final binaries and packages
14+
# * PROJECT_NAME: the name of the project, used in package name
15+
# * VERSION: the version of the project, used in package name and checksum file
16+
# * LD_FLAGS: flags used at build time
17+
#
18+
# The project MUST contain a LICENSE.txt file in the root folder or packaging will fail.
19+
20+
vars:
21+
CHECKSUM_FILE: "{{.VERSION}}-checksums.txt"
22+
323
tasks:
424
all:
525
desc: Build for distribution for all platforms
@@ -8,9 +28,11 @@ tasks:
828
- task: Windows_64bit
929
- task: Linux_32bit
1030
- task: Linux_64bit
11-
- task: Linux_ARM
31+
- task: Linux_ARMv6
32+
- task: Linux_ARMv7
1233
- task: Linux_ARM64
1334
- task: macOS_64bit
35+
- task: macOS_ARM64
1436

1537
Windows_32bit:
1638
desc: Builds Windows 32 bit binaries
@@ -20,13 +42,14 @@ tasks:
2042
GO386: "softfloat"
2143
cmds:
2244
- |
23-
go build -o {{ .DIST_DIR}}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }}.exe {{.LDFLAGS}}
24-
zip {{ .DIST_DIR}}/{{ .PACKAGE_NAME }} {{ .DIST_DIR}}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }}.exe -j
25-
zip {{ .DIST_DIR}}/{{ .PACKAGE_NAME }} LICENSE.txt -r
45+
go build -o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe {{.LDFLAGS}}
46+
cd {{.DIST_DIR}}
47+
zip {{.PACKAGE_NAME}} {{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe ../LICENSE.txt -j
48+
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
2649
vars:
27-
PLATFORM_DIR: "windows32"
50+
PLATFORM_DIR: "{{.PROJECT_NAME}}_windows_386"
2851
PACKAGE_PLATFORM: "Windows_32bit"
29-
PACKAGE_NAME: "{{ .PROJECT_NAME }}_{{ .VERSION }}_{{ .PACKAGE_PLATFORM }}.zip"
52+
PACKAGE_NAME: "{{.PROJECT_NAME}}_{{.VERSION}}_{{.PACKAGE_PLATFORM}}.zip"
3053

3154
Windows_64bit:
3255
desc: Builds Windows 64 bit binaries
@@ -35,13 +58,14 @@ tasks:
3558
GOARCH: "amd64"
3659
cmds:
3760
- |
38-
go build -o {{ .DIST_DIR}}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }}.exe {{.LDFLAGS}}
39-
zip {{ .DIST_DIR}}/{{ .PACKAGE_NAME }} {{ .DIST_DIR}}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }}.exe -j
40-
zip {{ .DIST_DIR}}/{{ .PACKAGE_NAME }} LICENSE.txt -r
61+
go build -o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe {{.LDFLAGS}}
62+
cd {{.DIST_DIR}}
63+
zip {{.PACKAGE_NAME}} {{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe ../LICENSE.txt -j
64+
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
4165
vars:
42-
PLATFORM_DIR: "windows64"
66+
PLATFORM_DIR: "{{.PROJECT_NAME}}_windows_amd64"
4367
PACKAGE_PLATFORM: "Windows_64bit"
44-
PACKAGE_NAME: "{{ .PROJECT_NAME }}_{{ .VERSION }}_{{ .PACKAGE_PLATFORM }}.zip"
68+
PACKAGE_NAME: "{{.PROJECT_NAME}}_{{.VERSION}}_{{.PACKAGE_PLATFORM}}.zip"
4569

4670
Linux_32bit:
4771
desc: Builds Linux 32 bit binaries
@@ -51,12 +75,14 @@ tasks:
5175
GO386: "softfloat"
5276
cmds:
5377
- |
54-
go build -o {{ .DIST_DIR}}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }} {{.LDFLAGS}}
55-
tar cz LICENSE.txt -C {{ .DIST_DIR}}/{{ .PLATFORM_DIR }} {{ .PROJECT_NAME }} -f {{ .DIST_DIR }}/{{ .PACKAGE_NAME }}
78+
go build -o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} {{.LDFLAGS}}
79+
cd {{.DIST_DIR}}
80+
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
81+
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
5682
vars:
57-
PLATFORM_DIR: "linux32"
83+
PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_amd32"
5884
PACKAGE_PLATFORM: "Linux_32bit"
59-
PACKAGE_NAME: "{{ .PROJECT_NAME }}_{{ .VERSION }}_{{ .PACKAGE_PLATFORM }}.tar.gz"
85+
PACKAGE_NAME: "{{.PROJECT_NAME}}_{{.VERSION}}_{{.PACKAGE_PLATFORM}}.tar.gz"
6086

6187
Linux_64bit:
6288
desc: Builds Linux 64 bit binaries
@@ -65,26 +91,48 @@ tasks:
6591
GOARCH: "amd64"
6692
cmds:
6793
- |
68-
go build -o {{ .DIST_DIR}}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }} {{.LDFLAGS}}
69-
tar cz LICENSE.txt -C {{ .DIST_DIR}}/{{ .PLATFORM_DIR }} {{ .PROJECT_NAME }} -f {{ .DIST_DIR }}/{{ .PACKAGE_NAME }}
94+
go build -o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} {{.LDFLAGS}}
95+
cd {{.DIST_DIR}}
96+
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
97+
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
7098
vars:
71-
PLATFORM_DIR: "linux64"
99+
PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_amd64"
72100
PACKAGE_PLATFORM: "Linux_64bit"
73-
PACKAGE_NAME: "{{ .PROJECT_NAME }}_{{ .VERSION }}_{{ .PACKAGE_PLATFORM }}.tar.gz"
101+
PACKAGE_NAME: "{{.PROJECT_NAME}}_{{.VERSION}}_{{.PACKAGE_PLATFORM}}.tar.gz"
102+
103+
Linux_ARMv7:
104+
desc: Builds Linux ARMv7 binaries
105+
env:
106+
GOOS: "linux"
107+
GOARCH: "arm"
108+
GOARM: 7
109+
cmds:
110+
- |
111+
go build -o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} {{.LDFLAGS}}
112+
cd {{.DIST_DIR}}
113+
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
114+
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
115+
vars:
116+
PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_arm_7"
117+
PACKAGE_PLATFORM: "Linux_ARMv7"
118+
PACKAGE_NAME: "{{.PROJECT_NAME}}_{{.VERSION}}_{{.PACKAGE_PLATFORM}}.tar.gz"
74119

75-
Linux_ARM:
76-
desc: Builds Linux ARM binaries
120+
Linux_ARMv6:
121+
desc: Builds Linux ARMv6 binaries
77122
env:
78123
GOOS: "linux"
79124
GOARCH: "arm"
125+
GOARM: 6
80126
cmds:
81127
- |
82-
go build -o {{ .DIST_DIR}}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }} {{.LDFLAGS}}
83-
tar cz LICENSE.txt -C {{ .DIST_DIR}}/{{ .PLATFORM_DIR }} {{ .PROJECT_NAME }} -f {{ .DIST_DIR }}/{{ .PACKAGE_NAME }}
128+
go build -o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} {{.LDFLAGS}}
129+
cd {{.DIST_DIR}}
130+
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
131+
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
84132
vars:
85-
PLATFORM_DIR: "linuxarm"
86-
PACKAGE_PLATFORM: "Linux_ARM"
87-
PACKAGE_NAME: "{{ .PROJECT_NAME }}_{{ .VERSION }}_{{ .PACKAGE_PLATFORM }}.tar.gz"
133+
PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_arm_6"
134+
PACKAGE_PLATFORM: "Linux_ARMv6"
135+
PACKAGE_NAME: "{{.PROJECT_NAME}}_{{.VERSION}}_{{.PACKAGE_PLATFORM}}.tar.gz"
88136

89137
Linux_ARM64:
90138
desc: Builds Linux ARM64 binaries
@@ -93,12 +141,14 @@ tasks:
93141
GOARCH: "arm64"
94142
cmds:
95143
- |
96-
go build -o {{ .DIST_DIR}}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }} {{.LDFLAGS}}
97-
tar cz LICENSE.txt -C {{ .DIST_DIR}}/{{ .PLATFORM_DIR }} {{ .PROJECT_NAME }} -f {{ .DIST_DIR }}/{{ .PACKAGE_NAME }}
144+
go build -o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} {{.LDFLAGS}}
145+
cd {{.DIST_DIR}}
146+
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
147+
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
98148
vars:
99-
PLATFORM_DIR: "linuxarm64"
149+
PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_arm_64"
100150
PACKAGE_PLATFORM: "Linux_ARM64"
101-
PACKAGE_NAME: "{{ .PROJECT_NAME }}_{{ .VERSION }}_{{ .PACKAGE_PLATFORM }}.tar.gz"
151+
PACKAGE_NAME: "{{.PROJECT_NAME}}_{{.VERSION}}_{{.PACKAGE_PLATFORM}}.tar.gz"
102152

103153
macOS_64bit:
104154
desc: Builds Mac OS X 64 bit binaries
@@ -107,12 +157,30 @@ tasks:
107157
GOARCH: "amd64"
108158
cmds:
109159
- |
110-
go build -o {{ .DIST_DIR}}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }} {{.LDFLAGS}}
111-
tar cz LICENSE.txt -C {{ .DIST_DIR}}/{{ .PLATFORM_DIR }} {{ .PROJECT_NAME }} -f {{ .DIST_DIR }}/{{ .PACKAGE_NAME }}
160+
go build -o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} {{.LDFLAGS}}
161+
cd {{.DIST_DIR}}
162+
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
163+
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
112164
vars:
113-
PLATFORM_DIR: "macos64"
165+
PLATFORM_DIR: "{{.PROJECT_NAME}}_osx_darwin_amd64"
114166
PACKAGE_PLATFORM: "macOS_64bit"
115-
PACKAGE_NAME: "{{ .PROJECT_NAME }}_{{ .VERSION }}_{{ .PACKAGE_PLATFORM }}.tar.gz"
167+
PACKAGE_NAME: "{{.PROJECT_NAME}}_{{.VERSION}}_{{.PACKAGE_PLATFORM}}.tar.gz"
168+
169+
macOS_ARM64:
170+
desc: Builds Mac OS X ARM64 binaries
171+
env:
172+
GOOS: "darwin"
173+
GOARCH: "arm64"
174+
cmds:
175+
- |
176+
go build -o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} {{.LDFLAGS}}
177+
cd {{.DIST_DIR}}
178+
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
179+
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
180+
vars:
181+
PLATFORM_DIR: "{{.PROJECT_NAME}}_osx_darwin_arm64"
182+
PACKAGE_PLATFORM: "macOS_ARM64"
183+
PACKAGE_NAME: "{{.PROJECT_NAME}}_{{.VERSION}}_{{.PACKAGE_PLATFORM}}.tar.gz"
116184

117185
generate-index-data:
118186
desc: Generates json for platform index

0 commit comments

Comments
 (0)