Files
linuxkit/Makefile
Justin Cormack f3e3a4029b Containerize test suite
- run test suite under containerd
- in future this should be converted to Go not shell see #860
- test suite is now in its own initrd, can be run on any platform not just qemu

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-12-09 17:13:16 -08:00

78 lines
2.7 KiB
Makefile

all:
$(MAKE) -C alpine
alpine/initrd.img:
$(MAKE) -C alpine initrd.img
alpine/initrd-test.img:
$(MAKE) -C alpine
alpine/kernel/x86_64/vmlinuz64:
$(MAKE) -C alpine/kernel x86_64/vmlinuz64
alpine/mobylinux-bios.iso:
$(MAKE) -C alpine mobylinux-bios.iso
qemu: Dockerfile.qemu alpine/initrd.img alpine/kernel/x86_64/vmlinuz64
tar cf - $^ | docker build -f Dockerfile.qemu -t mobyqemu:build -
docker run -it --rm mobyqemu:build
qemu-iso: Dockerfile.qemuiso alpine/mobylinux-bios.iso
tar cf - $^ | docker build -f Dockerfile.qemuiso -t mobyqemuiso:build -
docker run -it --rm mobyqemuiso:build
hyperkit.git:
git clone https://github.com/docker/hyperkit.git hyperkit.git
hyperkit.git/build/com.docker.hyperkit: hyperkit.git
cd hyperkit.git && make
hyperkit: hyperkit.sh hyperkit.git/build/com.docker.hyperkit alpine/initrd.img alpine/kernel/x86_64/vmlinuz64
sudo ./hyperkit.sh
test: Dockerfile.test alpine/initrd-test.img alpine/kernel/x86_64/vmlinuz64
$(MAKE) -C alpine
BUILD=$$( tar cf - $^ | docker build -f Dockerfile.test -q - ) && \
[ -n "$$BUILD" ] && \
echo "Built $$BUILD" && \
touch test.log && \
docker run --rm $$BUILD 2>&1 | tee -a test.log
@cat test.log | grep -q 'Moby test suite PASSED'
TAG=$(shell git rev-parse HEAD)
STATUS=$(shell git status -s)
MOBYLINUX_TAG=alpine/mobylinux.tag
media: Dockerfile.media alpine/initrd.img alpine/kernel/x86_64/vmlinuz64 alpine/mobylinux-efi.iso
ifeq ($(STATUS),)
tar cf - $^ alpine/mobylinux.efi alpine/kernel/x86_64/vmlinux alpine/kernel/x86_64/kernel-headers.tar | docker build -f Dockerfile.media -t mobylinux/media:$(MEDIA_PREFIX)$(TAG) -
docker push mobylinux/media:$(MEDIA_PREFIX)$(TAG)
[ -f $(MOBYLINUX_TAG) ]
docker tag $(shell cat $(MOBYLINUX_TAG)) mobylinux/mobylinux:$(MEDIA_PREFIX)$(TAG)
docker push mobylinux/mobylinux:$(MEDIA_PREFIX)$(TAG)
tar cf - Dockerfile.kernel alpine/kernel/x86_64/boot.tar | docker build -f Dockerfile.kernel -t mobylinux/kernel:$(MEDIA_PREFIX)$(TAG) -
docker push mobylinux/kernel:$(MEDIA_PREFIX)$(TAG)
else
$(error "git not clean")
endif
get:
ifeq ($(STATUS),)
IMAGE=$$( docker create mobylinux/media:$(MEDIA_PREFIX)$(TAG) /dev/null ) && \
mkdir -p alpine/kernel/x86_64 && \
docker cp $$IMAGE:vmlinuz64 alpine/kernel/x86_64/vmlinuz64 && \
docker cp $$IMAGE:vmlinux alpine/kernel/x86_64/vmlinux && \
docker cp $$IMAGE:kernel-headers.tar alpine/kernel/x86_64/kernel-headers.tar && \
docker cp $$IMAGE:initrd.img alpine/initrd.img && \
docker cp $$IMAGE:mobylinux-efi.iso alpine/mobylinux-efi.iso && \
docker cp $$IMAGE:mobylinux.efi alpine/mobylinux.efi && \
docker rm $$IMAGE
else
$(error "git not clean")
endif
.PHONY: clean
clean:
$(MAKE) -C alpine clean
rm -rf hyperkit.git disk.img