Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit a85ab56

Browse files
[skip changelog] Rework a dist process and add minimal documentation
1 parent 7af3d44 commit a85ab56

File tree

4 files changed

+42
-31
lines changed

4 files changed

+42
-31
lines changed

‎.github/workflows/nightly.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424

2525
- name: Build
2626
env:
27-
CUSTOM_VERSION: nightly
27+
NIGHTLY: true
2828
run: task dist:all
2929

3030
- name: Upload artifacts

‎DistTasks.yml‎

Lines changed: 33 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,21 @@
11
version: "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 is 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+
319
tasks:
420
all:
521
desc: Build for distribution for all platforms
@@ -18,7 +34,7 @@ tasks:
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 }}" \
@@ -29,7 +45,7 @@ tasks:
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"
@@ -40,7 +56,7 @@ tasks:
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 }}" \
@@ -51,7 +67,7 @@ tasks:
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"
@@ -62,7 +78,7 @@ tasks:
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 }}" \
@@ -73,7 +89,7 @@ tasks:
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,15 @@ 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

192208
vars:
193-
TAG:
194-
sh: echo "`git describe --tags --abbrev=0 2> /dev/null`"
195209
TIMESTAMP_SHORT:
196210
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-
'
205211
CONTAINER: "docker.elastic.co/beats-dev/golang-crossbuild"
206212
GO_VERSION: "1.14.7"
207-
CHECKSUM_FILE: "{{ .VERSION }}-checksums.txt"
213+
CHECKSUM_FILE: "{{ .VERSION }}-{{ .TIMESTAMP_SHORT }}-checksums.txt"

‎Taskfile.yml‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,15 +278,18 @@ vars:
278278
sh: echo "$(git log -n 1 --format=%h)"
279279
TIMESTAMP:
280280
sh: echo "$(date -u +"%Y-%m-%dT%H:%M:%SZ")"
281+
TAG:
282+
sh: echo "`git describe --tags --abbrev=0 2> /dev/null`"
283+
VERSION: "{{ if .NIGHTLY }}nightly{{ else if .TAG }}{{ .TAG }}{{ else }}snapshot{{ end }}"
281284
CONFIGURATION_PACKAGE: "github.com/arduino/{{ .PROJECT_NAME }}/internal/configuration"
282285
LDFLAGS: >-
283286
-ldflags
284287
'
288+
-X {{ .CONFIGURATION_PACKAGE }}.version={{.VERSION}}
285289
-X {{ .CONFIGURATION_PACKAGE }}.commit={{.COMMIT}}
286290
-X {{ .CONFIGURATION_PACKAGE }}.buildTimestamp={{.TIMESTAMP}}
287291
'
288292
GOFLAGS: "-timeout 10m -v -coverpkg=./... -covermode=atomic"
289-
290293
GOLINTFLAGS: "-min_confidence 0.8 -set_exit_status"
291294

292295
DOCS_VERSION: dev

‎test/test_all.py‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,14 +190,16 @@ def test_version(run_command):
190190
result = run_command(cmd=["--version"])
191191
assert result.ok
192192
output_list = result.stdout.strip().split(sep=" ")
193-
assert semver.VersionInfo.isvalid(version=output_list[0])
193+
version = output_list[0]
194+
assert semver.VersionInfo.isvalid(version=version) or version in ["snapshot", "nightly"]
194195
dateutil.parser.isoparse(output_list[1])
195196

196197
result = run_command(cmd=["--version", "--format", "json"])
197198
assert result.ok
198199
version_output = json.loads(result.stdout)
199200
if version_output["version"] != "":
200-
assert semver.VersionInfo.isvalid(version=version_output["version"])
201+
version = version_output["version"]
202+
assert semver.VersionInfo.isvalid(version=version) or version in ["snapshot", "nightly"]
201203
assert version_output["commit"] != ""
202204
dateutil.parser.isoparse(version_output["buildTimestamp"])
203205

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /