cord-776 create build / runtime containers for autmation uservices
Change-Id: I246973192adef56a250ffe93a5f65fff488840c1
diff --git a/automation/Makefile b/automation/Makefile
index d3aa83a..275f611 100644
--- a/automation/Makefile
+++ b/automation/Makefile
@@ -1,17 +1,38 @@
+IMAGE_NAME=cord-maas-automation
+BINARY=entry-point
+BUILD_TAG=build
+PACKAGE_TAG=candidate
+
.PHONY: help
help:
- @echo "image - create docker image for the MAAS deploy flow utility"
- @echo "save - save the docker image for the MAAS deployment flow utility to a local tar file"
- @echo "clean - remove any generated files"
+ @echo "build - create the binary"
+ @echo "package - package the binary into a docker container"
+ @echo "clean - remove tempory files and build artifacts"
@echo "help - this message"
-.PHONY: image
-image:
- docker build -t cord/maas-automation:0.1-prerelease .
+BUILD_DATE=$(shell date -u +%Y-%m-%dT%TZ)
+VCS_REF=$(shell git log --pretty=format:%H -n 1)
+VCS_REF_DATE=$(shell git log --pretty=format:%cd --date=format:%FT%T%z -n 1)
+BRANCHES=$(shell repo --color=never --no-pager branches 2>/dev/null | wc -l)
+STATUS=$(shell repo --color=never --no-pager status . | tail -n +2 | wc -l)
+MODIFIED=$(shell test $(BRANCHES) -eq 0 && test $(STATUS) -eq 0 || echo "[modified]")
+BRANCH=$(shell repo --color=never --no-pager info -l -o | grep 'Manifest branch:' | awk '{print $$NF}')
+VERSION=$(BRANCH)$(MODIFIED)
-save: image
- docker save -o cord_maas-automation.1-prerelease.tar cord/maas-automation:0.1-prerelease
+.PHONY: build
+build:
+ docker build -t $(IMAGE_NAME):$(BUILD_TAG) .
-.PHONT: clean
+.PHONY: package
+package:
+ $(eval BUILD_ID := $(shell docker create $(IMAGE_NAME):$(BUILD_TAG)))
+ $(eval BINDIR := $(shell mktemp -d))
+ docker cp $(BUILD_ID):/service/$(BINARY) $(BINDIR)/$(BINARY)
+ cp Dockerfile.release $(BINDIR)
+ docker build -f $(BINDIR)/Dockerfile.release -t $(IMAGE_NAME):$(PACKAGE_TAG) --label org.label-schema.build-date=$(BUILD_DATE) --label org.label-schema.vcs-ref=$(VCS_REF) --label org.label-schema.vcs-ref-date=$(VCS_REF_DATE) --label org.label-schema.version=$(VERSION) $(BINDIR)
+ docker rm -f $(BUILD_ID)
+ rm -r $(BINDIR)
+
+.PHONY: clean
clean:
- rm -f cord_maas-automation.1-prerelease.tar
+ @echo ""