Merge remote-tracking branch 'origin/master'
[obnox/vagrant/vagrant-lxc-base-boxes.git] / Makefile
1 UBUNTU_BOXES= precise quantal raring saucy trusty utopic vivid
2 DEBIAN_BOXES= squeeze wheezy sid jessie
3 CENTOS_BOXES= 6
4 FEDORA_BOXES= rawhide 23 22 21 20 19
5 TODAY=$(shell date -u +"%Y-%m-%d")
6
7 # Replace i686 with i386 and x86_64 with amd64
8 ARCH=$(shell uname -m | sed -e "s/68/38/" | sed -e "s/x86_64/amd64/")
9
10 default:
11
12 all: ubuntu debian fedora
13
14 ubuntu: $(UBUNTU_BOXES)
15 debian: $(DEBIAN_BOXES)
16 centos: $(CENTOS_BOXES)
17 fedora: $(FEDORA_BOXES)
18
19 # REFACTOR: Figure out how can we reduce duplicated code
20 $(UBUNTU_BOXES): CONTAINER = "vagrant-base-${@}-$(ARCH)"
21 $(UBUNTU_BOXES): PACKAGE = "output/${TODAY}/vagrant-lxc-${@}-$(ARCH).box"
22 $(UBUNTU_BOXES):
23         @mkdir -p $$(dirname $(PACKAGE))
24         @sudo -E ./mk-debian.sh ubuntu $(@) $(ARCH) $(CONTAINER) $(PACKAGE)
25         @sudo chmod +rw $(PACKAGE)
26         @sudo chown ${USER}: $(PACKAGE)
27 $(DEBIAN_BOXES): CONTAINER = "vagrant-base-${@}-$(ARCH)"
28 $(DEBIAN_BOXES): PACKAGE = "output/${TODAY}/vagrant-lxc-${@}-$(ARCH).box"
29 $(DEBIAN_BOXES):
30         @mkdir -p $$(dirname $(PACKAGE))
31         @sudo -E ./mk-debian.sh debian $(@) $(ARCH) $(CONTAINER) $(PACKAGE)
32         @sudo chmod +rw $(PACKAGE)
33         @sudo chown ${USER}: $(PACKAGE)
34 $(CENTOS_BOXES): CONTAINER = "vagrant-base-centos-${@}-$(ARCH)"
35 $(CENTOS_BOXES): PACKAGE = "output/${TODAY}/vagrant-lxc-centos-${@}-$(ARCH).box"
36 $(CENTOS_BOXES):
37         @mkdir -p $$(dirname $(PACKAGE))
38         @sudo -E ./mk-centos.sh $(@) $(ARCH) $(CONTAINER) $(PACKAGE)
39         @sudo chmod +rw $(PACKAGE)
40         @sudo chown ${USER}: $(PACKAGE)
41 $(FEDORA_BOXES): CONTAINER = "vagrant-base-fedora-${@}-$(ARCH)"
42 $(FEDORA_BOXES): PACKAGE = "output/${TODAY}/vagrant-lxc-fedora-${@}-$(ARCH).box"
43 $(FEDORA_BOXES):
44         @mkdir -p $$(dirname $(PACKAGE))
45         @sudo -E ./mk-fedora.sh $(@) $(ARCH) $(CONTAINER) $(PACKAGE)
46         @sudo chmod +rw $(PACKAGE)
47         @sudo chown ${USER}: $(PACKAGE)
48
49 acceptance: CONTAINER = "vagrant-base-acceptance-$(ARCH)"
50 acceptance: PACKAGE = "output/${TODAY}/vagrant-lxc-acceptance-$(ARCH).box"
51 acceptance:
52         @mkdir -p $$(dirname $(PACKAGE))
53         @PUPPET=1 CHEF=1 sudo -E ./mk-debian.sh ubuntu precise $(ARCH) $(CONTAINER) $(PACKAGE)
54         @sudo chmod +rw $(PACKAGE)
55         @sudo chown ${USER}: $(PACKAGE)
56
57 release:
58         @test -z '$(version)' && echo 'version parameter not provided to `make`!' && exit 1 || return 0
59         gh release create -d -a output/${TODAY} $(version)
60         git tag $(version)
61         git push && git push --tags
62
63 clean: ALL_BOXES = ${DEBIAN_BOXES} ${UBUNTU_BOXES} ${CENTOS_BOXES} ${FEDORA_BOXES} acceptance
64 clean:
65         @for r in $(ALL_BOXES); do \
66                 sudo -E ./clean.sh $${r}\
67                         vagrant-base-$${r}-$(ARCH) \
68                         output/${TODAY}/vagrant-lxc-$${r}-$(ARCH).box; \
69         done