Skip to content

Commit cd36a8d

Browse files
committed
Cleaning taskfile - host platform is always Linux.
1 parent 2abd1fd commit cd36a8d

File tree

1 file changed

+80
-56
lines changed

1 file changed

+80
-56
lines changed

Taskfile.yaml

+80-56
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ version: '3'
33
output: 'group'
44
silent: true
55

6+
# we are assuming that host os is always Linux
7+
68
vars:
79
DEV_BUILD_DIR: 'build'
810
REL_BUILD_DIR: 'release'
@@ -22,20 +24,21 @@ tasks:
2224
default:
2325
desc: Builds development version for host OS
2426
aliases: [debug]
27+
platforms: [linux]
2528
deps:
2629
- task: copy-file
27-
vars: {SRC: '{{joinPath "scripts" "pre-commit"}}', DST: '{{joinPath ".git" "hooks" "pre-commit"}}'}
30+
vars: {SRC: 'scripts/pre-commit', DST: '.git/hooks/pre-commit'}
2831
- task: copy-file
29-
vars: {SRC: '{{joinPath "scripts" "pre-push"}}', DST: '{{joinPath ".git" "hooks" "pre-push"}}'}
32+
vars: {SRC: 'scripts/pre-push', DST: '.git/hooks/pre-push'}
3033
- task: copy-file
31-
vars: {SRC: '{{joinPath "kindlegen" (OS) "kindlegen"}}{{.SUFFIX}}', DST: '{{joinPath .DEV_BUILD_DIR "kindlegen"}}{{.SUFFIX}}'}
34+
vars: {SRC: 'kindlegen/linux/kindlegen', DST: '{{.DEV_BUILD_DIR}}/kindlegen'}
3235
- task: generate-project-version
3336
- task: get-dictionaries
3437
- task: get-sentences
3538
- task: generate-enums
3639
cmds:
3740
- task: go-build
38-
vars: {FLAGS: 'debug', PACKAGE: './cmd/fb2c', TARGET: '{{joinPath .DEV_BUILD_DIR "fb2c"}}{{exeExt}}'}
41+
vars: {FLAGS: 'debug', PACKAGE: './cmd/fb2c', TARGET: '{{.DEV_BUILD_DIR}}/fb2c'}
3942
- task: lint
4043

4144
test:
@@ -44,6 +47,7 @@ tasks:
4447
When invoked as usual runs tests for all packages where it can find "*_test.go" files, for example: "task test".
4548
You can specify what tests to run by using PACKAGES environment variable, for example: "PACKAGES='./hyphenator,./processor' task test".
4649
You can pass any additional parameters supported by "go test", for example: "PACKAGES='./hyphenator' task test -- -run=TestHyphenatorSpecial".
50+
platforms: [linux]
4751
deps: [generate-project-version, get-dictionaries, get-sentences, generate-enums]
4852
vars:
4953
TEST_DIR: "{{.ROOT_DIR}}/{{.DEV_BUILD_DIR}}/tests_results"
@@ -68,6 +72,7 @@ tasks:
6872
When invoked as usual runs benchmarks for all packages where it can find "*_test.go" files, for example: "task bench".
6973
You can specify what packages to benchmark by using PACKAGES environment variable, for example: "PACKAGES='./cache,./service' task bench".
7074
You can pass any additional parameters supported by "go test", for example: "PACKAGES='./marshallers/segdiffs' task bench -- -bench=BenchmarkBinary -benchmem".
75+
platforms: [linux]
7176
deps: [generate-project-version, get-dictionaries, get-sentences, generate-enums]
7277
vars:
7378
TEST_DIR: "{{.ROOT_DIR}}/{{.DEV_BUILD_DIR}}/tests_results"
@@ -91,6 +96,7 @@ tasks:
9196
Runs escape analisys on specified package.
9297
You could specify anything in the project, for example "task escape -- ./marshallers/segdiffs".
9398
If no package is specified assumes "./cmd/goliath".
99+
platforms: [linux]
94100
deps: [generate-project-version, get-dictionaries, get-sentences, generate-enums]
95101
cmds:
96102
- echo "{{.TATN}}Building binary with escape analisys enabled{{.TOFF}}"
@@ -99,6 +105,7 @@ tasks:
99105

100106
release:
101107
desc: Cross-builds release for all supported platforms
108+
platforms: [linux]
102109
deps: [generate-project-version, get-dictionaries, get-sentences]
103110
cmds:
104111
- mkdir -p '{{.REL_BUILD_DIR}}'
@@ -117,18 +124,18 @@ tasks:
117124
label: release-for-platform-windows-{{.GOOS}}-{{.GOARCH}}
118125
vars:
119126
BUILD_DIR: '{{.REL_BUILD_DIR}}_{{.GOOS}}_{{.GOARCH}}'
120-
REL_NAME: '{{joinPath .REL_BUILD_DIR "fb2c"}}-{{.GOOS}}-{{.GOARCH}}'
127+
REL_NAME: '{{.REL_BUILD_DIR}}/fb2c-{{.GOOS}}-{{.GOARCH}}'
121128
cmds:
122129
- mkdir -p {{.BUILD_DIR}}
123130
- defer: rm -rf {{.BUILD_DIR}}
124131
- task: copy-file
125-
vars: {SRC: '{{joinPath "kindlegen" .GOOS "kindlegen"}}{{.SUFFIX}}', DST: '{{joinPath .BUILD_DIR "fb2converter" "kindlegen"}}{{.SUFFIX}}'}
132+
vars: {SRC: 'kindlegen/{{.GOOS}}/kindlegen{{.SUFFIX}}', DST: '{{.BUILD_DIR}}/fb2converter/kindlegen{{.SUFFIX}}'}
126133
- task: go-build
127-
vars: {GOOS: '{{.GOOS}}', GOARCH: '{{.GOARCH}}', FLAGS: 'release', PACKAGE: './cmd/fb2c', TARGET: '{{joinPath .BUILD_DIR "fb2converter" "fb2c"}}{{.SUFFIX}}'}
134+
vars: {GOOS: '{{.GOOS}}', GOARCH: '{{.GOARCH}}', FLAGS: 'release', PACKAGE: './cmd/fb2c', TARGET: '{{.BUILD_DIR}}/fb2converter/fb2c{{.SUFFIX}}'}
128135
- task: go-build
129-
vars: {GOOS: '{{.GOOS}}', GOARCH: '{{.GOARCH}}', FLAGS: 'release', PACKAGE: './cmd/fb2epub', TARGET: '{{joinPath .BUILD_DIR "fb2epub" "fb2epub"}}{{.SUFFIX}}'}
136+
vars: {GOOS: '{{.GOOS}}', GOARCH: '{{.GOARCH}}', FLAGS: 'release', PACKAGE: './cmd/fb2epub', TARGET: '{{.BUILD_DIR}}/fb2epub/fb2epub{{.SUFFIX}}'}
130137
- task: go-build
131-
vars: {GOOS: '{{.GOOS}}', GOARCH: '{{.GOARCH}}', FLAGS: 'release', PACKAGE: './cmd/fb2mobi', TARGET: '{{joinPath .BUILD_DIR "fb2mobi" "fb2mobi"}}{{.SUFFIX}}'}
138+
vars: {GOOS: '{{.GOOS}}', GOARCH: '{{.GOARCH}}', FLAGS: 'release', PACKAGE: './cmd/fb2mobi', TARGET: '{{.BUILD_DIR}}/fb2mobi/fb2mobi{{.SUFFIX}}'}
132139
- echo "{{.TATN}}Archiving release \"{{.REL_NAME}}.zip\"{{.TOFF}}"
133140
- 7z a -r -bd -bso0 -tzip {{.REL_NAME}} ./{{.BUILD_DIR}}/*
134141
status:
@@ -142,14 +149,14 @@ tasks:
142149
label: release-for-platform-linux-{{.GOOS}}-{{.GOARCH}}
143150
vars:
144151
BUILD_DIR: '{{.REL_BUILD_DIR}}_{{.GOOS}}_{{.GOARCH}}'
145-
REL_NAME: '{{joinPath .REL_BUILD_DIR "fb2c"}}-{{.GOOS}}-{{.GOARCH}}'
152+
REL_NAME: '{{.REL_BUILD_DIR}}/fb2c-{{.GOOS}}-{{.GOARCH}}'
146153
cmds:
147154
- mkdir -p {{.BUILD_DIR}}
148155
- defer: rm -rf {{.BUILD_DIR}}
149156
- task: copy-file
150-
vars: {SRC: '{{joinPath "kindlegen" .GOOS "kindlegen"}}{{.SUFFIX}}', DST: '{{joinPath .BUILD_DIR "kindlegen"}}{{.SUFFIX}}'}
157+
vars: {SRC: 'kindlegen/{{.GOOS}}/kindlegen', DST: '{{.BUILD_DIR}}/kindlegen'}
151158
- task: go-build
152-
vars: {GOOS: '{{.GOOS}}', GOARCH: '{{.GOARCH}}', FLAGS: 'release', PACKAGE: './cmd/fb2c', TARGET: '{{joinPath .BUILD_DIR "fb2c"}}{{.SUFFIX}}'}
159+
vars: {GOOS: '{{.GOOS}}', GOARCH: '{{.GOARCH}}', FLAGS: 'release', PACKAGE: './cmd/fb2c', TARGET: '{{.BUILD_DIR}}/fb2c'}
153160
- echo "{{.TATN}}Archiving release \"{{.REL_NAME}}.zip\"{{.TOFF}}"
154161
- 7z a -r -bd -bso0 -tzip {{.REL_NAME}} ./{{.BUILD_DIR}}/*
155162
status:
@@ -163,14 +170,14 @@ tasks:
163170
label: release-for-platform-darwin-{{.GOOS}}-{{.GOARCH}}
164171
vars:
165172
BUILD_DIR: '{{.REL_BUILD_DIR}}_{{.GOOS}}_{{.GOARCH}}'
166-
REL_NAME: '{{joinPath .REL_BUILD_DIR "fb2c"}}-{{.GOOS}}-{{.GOARCH}}'
173+
REL_NAME: '{{.REL_BUILD_DIR}}/fb2c-{{.GOOS}}-{{.GOARCH}}'
167174
cmds:
168175
- mkdir -p {{.BUILD_DIR}}
169176
- defer: rm -rf {{.BUILD_DIR}}
170177
- task: copy-file
171-
vars: {SRC: '{{joinPath "kindlegen" .GOOS "kindlegen"}}{{.SUFFIX}}', DST: '{{joinPath .BUILD_DIR "kindlegen"}}{{.SUFFIX}}'}
178+
vars: {SRC: 'kindlegen/{{.GOOS}}/kindlegen{{.SUFFIX}}', DST: '{{.BUILD_DIR}}/kindlegen{{.SUFFIX}}'}
172179
- task: go-build
173-
vars: {GOOS: '{{.GOOS}}', GOARCH: '{{.GOARCH}}', FLAGS: 'release', PACKAGE: './cmd/fb2c', TARGET: '{{joinPath .BUILD_DIR "fb2c"}}{{.SUFFIX}}'}
180+
vars: {GOOS: '{{.GOOS}}', GOARCH: '{{.GOARCH}}', FLAGS: 'release', PACKAGE: './cmd/fb2c', TARGET: '{{.BUILD_DIR}}/fb2c{{.SUFFIX}}'}
174181
- echo "{{.TATN}}Archiving release \"{{.REL_NAME}}.zip\"{{.TOFF}}"
175182
- 7z a -r -bd -bso0 -tzip {{.REL_NAME}} ./{{.BUILD_DIR}}/*
176183
status:
@@ -180,9 +187,7 @@ tasks:
180187
internal: true
181188
desc: Generates fmt.Stringer interfaces for specified enum types
182189
vars:
183-
STRINGER: '{{joinPath .DEV_BUILD_DIR "stringer"}}{{exeExt}}'
184-
INPUT: 'processor/enums.go'
185-
OUTPUT: 'processor/enums_string.go'
190+
STRINGER: '{{.DEV_BUILD_DIR}}/stringer'
186191
cmds:
187192
- task: go-build-tool
188193
vars: {PACKAGE: 'golang.org/x/tools/cmd/stringer', TARGET: '{{.STRINGER}}'}
@@ -193,23 +198,39 @@ tasks:
193198
-output processor/enums_string.go \
194199
processor/enums.go
195200
sources:
196-
- '{{.INPUT}}'
201+
- processor/enums.go
197202
generates:
198-
- '{{.OUTPUT}}'
203+
- processor/enums_string.go
199204

200205
lint:
201-
desc: Lints whole project
206+
desc: Lints the whole project
207+
platforms: [linux]
202208
vars:
203-
LINTER: '{{joinPath .DEV_BUILD_DIR "staticcheck"}}{{exeExt}}'
209+
LINTER: '{{.DEV_BUILD_DIR}}/staticcheck'
204210
cmds:
205-
- task: go-build-tool
206-
vars: {PACKAGE: 'honnef.co/go/tools/cmd/staticcheck', TARGET: '{{.LINTER}}'}
211+
- task: build-linter
212+
vars: {LINTER: '{{.LINTER}}'}
207213
- echo "{{.TATN}}Linting project{{.TOFF}}"
208214
- ./{{.LINTER}} -f stylish -tests=false ./...
209-
sources:
210-
- './**/*.go'
211-
- './go.sum'
212-
- './go.mod'
215+
sources:
216+
- ./**/*.go
217+
- ./go.sum
218+
- ./go.mod
219+
220+
build-linter:
221+
internal: true
222+
desc: Builds linter for the project
223+
requires:
224+
vars: [LINTER]
225+
cmds:
226+
- task: go-build-tool
227+
vars: {PACKAGE: 'honnef.co/go/tools/cmd/staticcheck', TARGET: '{{.LINTER}}'}
228+
sources:
229+
- tools/tools.go
230+
- go.mod
231+
- go.sum
232+
generates:
233+
- '{{.LINTER}}'
213234

214235
go-build:
215236
internal: true
@@ -232,7 +253,7 @@ tasks:
232253
- echo "{{.TATN}}Building \"{{base .TARGET}}\" binary for \"$GOOS:$GOARCH\" from \"{{.PACKAGE}}\"{{.TOFF}}"
233254
- go build {{.GOARGS}} -o '{{.TARGET}}' '{{.PACKAGE}}'
234255
sources:
235-
- './**/*.go'
256+
- ./**/*.go
236257
generates:
237258
- '{{.TARGET}}'
238259

@@ -257,8 +278,8 @@ tasks:
257278
run: when_changed
258279
vars:
259280
VER: '{{if .REF_VER}}{{regexFind "[0-9]+\\.[0-9]+\\.?[0-9]*[-a-zA-Z0-9+]*" .REF_VER}}{{else}}0.0.0-dev{{end}}'
260-
DIR: '{{ joinPath .ROOT_DIR "misc" }}'
261-
FILE: '{{ joinPath .ROOT_DIR "misc" "version.go" }}'
281+
DIR: '{{.ROOT_DIR}}/misc'
282+
FILE: '{{.ROOT_DIR}}/misc/version.go'
262283
GIT_HASH:
263284
sh: git rev-list -1 HEAD || true
264285
GIT_STATUS:
@@ -280,16 +301,16 @@ tasks:
280301
EOF
281302
- gofmt -w {{.FILE}}
282303
sources:
283-
- '{{joinPath ".git" "index"}}'
304+
- .git/index
284305
generates:
285-
- "{{.FILE}}"
306+
- '{{.FILE}}'
286307

287308
get-dictionaries:
288309
internal: true
289310
run: once
290311
desc: Get dictionary rules for all supported languages
291312
vars:
292-
DIR: '{{joinPath "static" "dictionaries"}}'
313+
DIR: 'static/dictionaries'
293314
dir: '{{.DIR}}'
294315
cmds:
295316
- rm -f *.txt
@@ -305,7 +326,7 @@ tasks:
305326
run: once
306327
desc: Get NLTK training data
307328
vars:
308-
DIR: '{{joinPath "static" "sentences"}}'
329+
DIR: 'static/sentences'
309330
dir: '{{.DIR}}'
310331
cmds:
311332
- rm -f *.json
@@ -320,36 +341,20 @@ tasks:
320341
-not -name 'korean.json.gz' \
321342
-not -name 'hungarian.json.gz' | grep -q .
322343
323-
copy-file:
324-
internal: true
325-
desc: Copies source file to destination
326-
requires:
327-
vars: [SRC, DST]
328-
label: copy-file-{{.SRC}}-{{.DST}}
329-
cmds:
330-
- echo "{{.TATN}}Copying \"{{.SRC}}\" to \"{{.DST}}\"{{.TOFF}}"
331-
- mkdir -p {{dir .DST}}
332-
- cp '{{.SRC}}' '{{.DST}}'
333-
sources:
334-
- '{{.SRC}}'
335-
generates:
336-
- '{{.DST}}'
337-
status:
338-
- test -f '{{.DST}}'
339-
method: timestamp
340-
341344
go-tidy:
342345
desc: Tidy Go modules for the project.
346+
platforms: [linux]
343347
aliases: [tidy]
344348
vars:
345349
GO_VER: '{{default "" (regexFind "[0-9]+\\.[0-9]+\\.?[0-9]*[-a-zA-Z0-9+]*" (env "CUR_PROJECT_TYPE"))}}'
346350
cmds:
347-
- GOOS=linux go mod tidy{{if .GO_VER}} -go={{.GO_VER}}{{end}} {{.CLI_ARGS}}
348-
- GOOS=darwin go mod tidy{{if .GO_VER}} -go={{.GO_VER}}{{end}} {{.CLI_ARGS}}
349-
- GOOS=windows go mod tidy{{if .GO_VER}} -go={{.GO_VER}}{{end}} {{.CLI_ARGS}}
351+
- GOOS=linux go mod tidy{{if .GO_VER}} -go={{.GO_VER}}{{end}} {{.CLI_ARGS}}
352+
- GOOS=darwin go mod tidy{{if .GO_VER}} -go={{.GO_VER}}{{end}} {{.CLI_ARGS}}
353+
- GOOS=windows go mod tidy{{if .GO_VER}} -go={{.GO_VER}}{{end}} {{.CLI_ARGS}}
350354

351355
go-vendor:
352356
desc: Creates vendor directory for release build
357+
platforms: [linux]
353358
aliases: [vendor]
354359
cmds:
355360
- GOOS=linux go mod vendor
@@ -358,6 +363,7 @@ tasks:
358363

359364
clean:
360365
desc: Cleans all build release aritfacts
366+
platforms: [linux]
361367
cmds:
362368
- |
363369
find 'static/sentences' -type f \
@@ -376,3 +382,21 @@ tasks:
376382
- rm -fv .task/checksum/*
377383
- rm -fv .task/timestamp/*
378384
- rm -fv misc/version.go
385+
386+
copy-file:
387+
internal: true
388+
desc: Copies source file to destination
389+
requires:
390+
vars: [SRC, DST]
391+
label: copy-file-{{.SRC}}-{{.DST}}
392+
cmds:
393+
- echo "{{.TATN}}Copying \"{{.SRC}}\" to \"{{.DST}}\"{{.TOFF}}"
394+
- mkdir -p {{dir .DST}}
395+
- cp '{{.SRC}}' '{{.DST}}'
396+
sources:
397+
- '{{.SRC}}'
398+
generates:
399+
- '{{.DST}}'
400+
status:
401+
- test -f '{{.DST}}'
402+
method: timestamp

0 commit comments

Comments
 (0)