forked from open-component-model/open-component-model
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtools.Taskfile.yml
More file actions
95 lines (83 loc) · 3.08 KB
/
tools.Taskfile.yml
File metadata and controls
95 lines (83 loc) · 3.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
version: '3'
vars:
DEEPCOPY_GEN_TARGET_VERSION: '${DEEPCOPY_GEN_VERSION}'
GOLANGCI_LINT_TARGET_VERSION: '${GOLANGCI_LINT_VERSION}'
tasks:
deepcopy-gen/generate-deepcopy:
desc: "Generate kubernetes-style deepcopy code for all types in the project"
deps: [deepcopy-gen/install]
cmds: [ task: deepcopy-gen/concurrent ]
deepcopy-gen/concurrent:
desc: "Run golangci-lint on all modules concurrently after install"
internal: true
deps:
- for: { var: GO_MODULES }
task: 'deepcopy-gen/module'
vars: { ITEM: '{{ .ITEM }}' }
deepcopy-gen/module:
desc: "Generate kubernetes-style deepcopy code for all types in a single module"
internal: true
silent: true
prefix: '{{.ITEM}}'
dir: '{{.ITEM}}'
cmd: |
{{ .ROOT_DIR }}/tmp/bin/deepcopy-gen-{{ .DEEPCOPY_GEN_TARGET_VERSION }} \
--output-file "zz_generated.deepcopy.go" \
./...
deepcopy-gen/install:
desc: "Install {{.PKG}} at {{ .DEEPCOPY_GEN_TARGET_VERSION }} into tmp ({{ .ROOT_DIR }}/tmp/bin) if not already present"
vars:
PKG: k8s.io/code-generator/cmd/deepcopy-gen
status:
- '{{ .ROOT_DIR }}/tmp/bin/deepcopy-gen-{{ .DEEPCOPY_GEN_TARGET_VERSION }}'
env:
GOBIN: '{{ .ROOT_DIR }}/tmp/bin'
cmds:
- go install {{ .PKG }}@{{ .DEEPCOPY_GEN_TARGET_VERSION }}
- mv {{ .ROOT_DIR }}/tmp/bin/deepcopy-gen {{ .ROOT_DIR }}/tmp/bin/deepcopy-gen-{{ .DEEPCOPY_GEN_TARGET_VERSION }}
golangci-lint/run:
desc: "Run golangci-lint on all go modules"
deps: [golangci-lint/install]
cmds:
- task: golangci-lint/run-concurrent
aliases:
- "lint"
golangci-lint/run-concurrent:
desc: "Run golangci-lint on all modules concurrently after install"
internal: true
deps:
- for: { var: GO_MODULES }
task: 'golangci-lint/module'
vars:
ITEM: '{{ .ITEM }}'
golangci-lint/module:
desc: "Run golangci-lint on a single go module specified by ITEM"
internal: true
silent: true
prefix: '{{.ITEM}}'
dir: '{{.ITEM}}'
vars:
GOLANGCI_LINT: '{{ .ROOT_DIR }}/tmp/bin/golangci-lint'
GOLANGCI_LINT_CONFIG: '{{ .ROOT_DIR }}/.github/config/golangci.yml'
TIMEOUT: '10m'
cmd: |
{{ .GOLANGCI_LINT }} run \
--config={{ .GOLANGCI_LINT_CONFIG }} \
--timeout {{ .TIMEOUT }} \
--path-prefix {{.ITEM}} \
{{ .CLI_ARGS }} ./...
golangci-lint/install:
desc: "Install golangci-lint {{ .GOLANGCI_LINT_TARGET_VERSION }} into {{ .ROOT_DIR }}/tmp/bin if needed"
vars:
BIN: '{{ .ROOT_DIR }}/tmp/bin/golangci-lint'
CURRENT_VERSION:
sh: 'if [ -x {{ .BIN }} ]; then {{ .BIN }} version --short | sed "s/^/v/"; else echo "absent"; fi'
status:
- 'test -x {{ .BIN }}'
- '[ "{{ .CURRENT_VERSION }}" = "{{ .GOLANGCI_LINT_TARGET_VERSION }}" ]'
cmds:
- mkdir -p {{ .ROOT_DIR }}/tmp/bin
- >
curl -fsSL
"https://raw.githubusercontent.com/golangci/golangci-lint/{{ .GOLANGCI_LINT_TARGET_VERSION }}/install.sh"
| sh -s -- -b "{{ .ROOT_DIR }}/tmp/bin" "{{ .GOLANGCI_LINT_TARGET_VERSION }}"