-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
75 lines (57 loc) · 2.36 KB
/
Makefile
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
TEMPLATES ?= $(patsubst ./%,%,$(shell find . -name '*.json' -maxdepth 1 -not -name '*.sample.json' -and -not -name vagrant-cloud.json))
BUILD_TOOLS += packer jq git
CHECK_TOOLS += packer
PACKER_ARGS ?=
include vendor/mk/base.mk
include vendor/mk/json.mk
include vendor/mk/shell.mk
build: $(TEMPLATES) ## Builds the sources
.PHONY: build
test: ## Runs all tests
.PHONY: test
check: check-shell check-json check-template ## Checks all linting, styling, & other rules
.PHONY: check
check-template: checktools
@echo "--- $@"
@for tmpl in $(TEMPLATES); do \
echo " - $$tmpl"; \
packer validate \
-var "git_revision=$$(git show -s --format=%h)" \
$$tmpl; \
done
.PHONY: check-template
clean: clean-shell ## Cleans up project
rm -rf builds packer_cache packer-*
.PHONY: clean
$(TEMPLATES): buildtools
@echo "--- $@"
mkdir -p builds
packer build -var "git_revision=$$(git show -s --format=%h)" $(PACKER_ARGS) $@
.PHONY: $(TEMPLATES)
upload: buildtools ## Uploads a new version to Vagrant Cloud with all provider boxes
@echo "--- $@"
packer build -var metadata=$(METADATA) vagrant-cloud.json
.PHONY: upload
upload-all: buildtools ## Uploads all built boxes
@echo "--- $@"
@find builds -name '*.metadata.json' -type f \
| while read -r metadata; do \
$(MAKE) upload METADATA=$$metadata || break; \
done
.PHONY: upload-all
release-openbsd: clean openbsd-7.4-amd64.json openbsd-7.3-amd64.json upload-all ## Builds and uploads supported OpenBSD versions
.PHONY: release-openbsd
release-openbsd-7.4: clean openbsd-7.4-amd64.json upload-all ## Builds and uploads OpenBSD 7.4 boxes
.PHONY: release-openbsd-7.4
release-openbsd-7.3: clean openbsd-7.3-amd64.json upload-all ## Builds and uploads OpenBSD 7.3 boxes
.PHONY: release-openbsd-7.3
release-openbsd-7.2: clean openbsd-7.2-amd64.json upload-all ## Builds and uploads OpenBSD 7.2 boxes
.PHONY: release-openbsd-7.2
release-openbsd-7.1: clean openbsd-7.1-amd64.json upload-all ## Builds and uploads OpenBSD 7.1 boxes
.PHONY: release-openbsd-7.1
release-openbsd-7.0: clean openbsd-7.0-amd64.json upload-all ## Builds and uploads OpenBSD 7.0 boxes
.PHONY: release-openbsd-7.0
release-openbsd-6.9: clean openbsd-6.9-amd64.json upload-all ## Builds and uploads OpenBSD 6.9 boxes
.PHONY: release-openbsd-6.9
release-openbsd-6.8: clean openbsd-6.8-amd64.json upload-all ## Builds and uploads OpenBSD 6.8 boxes
.PHONY: release-openbsd-6.8