11
2- .PHONY : test test-unit test-component test-kubectl test-install build dist clean
2+ .PHONY : test test-unit test-component test-kubectl test-install build release clean
3+ os ?= $(shell uname -s | tr '[:upper:]' '[:lower:]')
34
45test : test-unit test-component test-kubectl test-install
56
67test-unit :
78 go test ./...
89
9- test-component : dist
10+ test-component : kubectl-neat_ $( os )
1011 bats ./test/component.bats
1112
12- test-kubectl : dist
13+ test-kubectl : kubectl-neat_ $( os )
1314 bats ./test/kubectl.bats
1415
15- test-install : dist
16+ test-install : dist/kubectl-neat_ $( os ) .tar.gz dist/checksums.txt
1617 bats ./test/install.bats
1718
18- os ?= $(shell uname -s | tr '[:upper:]' '[:lower:]')
19- dist : dist/$(os )
20-
21- dist/% : kubectl-neat_%
22- mkdir -p dist/$*
23- cp kubectl-neat_$* dist/$* /kubectl-neat
24-
2519build : kubectl-neat_$(os )
2620
2721SRC = $(shell find . -type f -name '* .go' -not -path "./vendor/* ")
2822kubectl-neat_% : $(SRC )
2923 GOOS=$* go build -o $(@F )
3024
31- clean :
32- rm -rf ./dist ./krew
33- rm kubectl-neat*
34-
35- krew : dist/darwin dist/linux
36- mkdir -p ./krew
37- ./krew-package.sh ' darwin' ' neat' ' krew'
38- ./krew-package.sh ' linux' ' neat' ' krew'
39-
25+ # release by default will not publish. run with `publish=1` to publish
26+ goreleaserflags = --skip-publish --snapshot
27+ ifdef publish
28+ goreleaserflags =
29+ endif
30+ # relase always re-builds (no dependencies on purpose)
31+ release :
32+ goreleaser --rm-dist $(goreleaserflags )
33+
34+ dist/kubectl-neat_darwin.tar.gz dist/kubectl-neat_linux.tar.gz dist/checksums.txt : release
35+ # no op recipe
36+ @:
37+
38+ krew : dist/kubectl-neat_darwin.tar.gz dist/kubectl-neat_linux.tar.gz dist/checksums.txt
39+ ./krew-package.sh ' darwin' ' neat' ' ./dist'
40+ ./krew-package.sh ' linux' ' neat' ' ./dist'
4041 # merge
41- yq r --tojson "krew/kubectl-neat_darwin.yaml" > krew/darwin.json
42- yq r --tojson "krew/kubectl-neat_linux.yaml" > krew/linux.json
43- rm krew/kubectl-neat_darwin.yaml krew/kubectl-neat_linux.yaml
44- jq --slurp '.[0].spec.platforms += .[1].spec.platforms | .[0]' 'krew/darwin.json' 'krew/linux.json' > 'krew/kubectl-neat.json'
45- yq r krew/kubectl-neat.json > krew/kubectl-neat.yaml
46- rm krew/kubectl-neat.json krew/darwin.json krew/linux.json
42+ yq r --tojson " dist/kubectl-neat_darwin.yaml" > dist/darwin.json
43+ yq r --tojson " dist/kubectl-neat_linux.yaml" > dist/linux.json
44+ rm dist/kubectl-neat_darwin.yaml dist/kubectl-neat_linux.yaml
45+ jq --slurp ' .[0].spec.platforms += .[1].spec.platforms | .[0]' ' dist/darwin.json' ' dist/linux.json' > ' dist/kubectl-neat.json'
46+ yq r dist/kubectl-neat.json > dist/kubectl-neat.yaml
47+ rm dist/kubectl-neat.json dist/darwin.json dist/linux.json
48+
49+ clean :
50+ rm -rf dist
51+ rm kubectl-neat*
0 commit comments