[VOL-2597]:
- Create Dockerfile for building docker container with prereq software
for building and running openolt agent UT.
Change-Id: I0f7d244d3253953b8bfe96598047be1f9a6c7b7b
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..3f9866d
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,79 @@
+#Copyright 2018-present Open Networking Foundation
+#
+#Licensed under the Apache License, Version 2.0 (the "License");
+#you may not use this file except in compliance with the License.
+#You may obtain a copy of the License at
+#
+#http://www.apache.org/licenses/LICENSE-2.0
+#
+#Unless required by applicable law or agreed to in writing, software
+#distributed under the License is distributed on an "AS IS" BASIS,
+#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#See the License for the specific language governing permissions and
+#limitations under the License.
+
+########################################################################
+
+# set default shell options
+SHELL = bash -e -o pipefail
+
+## Variables
+VERSION ?= $(shell cat ./VERSION)
+GTEST_VER ?= release-1.8.0
+CMOCK_VER ?= 0207b30
+GMOCK_GLOBAL_VER ?= 1.0.2
+GRPC_VER ?= v1.27.1
+
+# Docker related
+DOCKER_LABEL_VCS_DIRTY = false
+ifneq ($(shell git status --porcelain | grep 'docker/Dockerfile.openolt-test' | wc -l | sed -e 's/ //g'),0)
+ DOCKER_LABEL_VCS_DIRTY = true
+ VERSION = latest
+endif
+
+DOCKER ?= docker
+DOCKER_REGISTRY ?=
+DOCKER_REPOSITORY ?=
+DOCKER_EXTRA_ARGS ?=
+DOCKER_TAG ?= ${VERSION}
+
+OPENOLT_TEST_IMAGENAME := ${DOCKER_REGISTRY}${DOCKER_REPOSITORY}openolt-test:${DOCKER_TAG}
+
+VOLTHA_CI_TOOLS_IMAGENAME := voltha/voltha-ci-tools:1.0.3-hadolint
+
+DOCKER_BUILD_ARGS ?= \
+ ${DOCKER_EXTRA_ARGS} \
+ --build-arg GTEST_VER=${GTEST_VER} \
+ --build-arg CMOCK_VER=${CMOCK_VER} \
+ --build-arg GMOCK_GLOBAL_VER=${GMOCK_GLOBAL_VER} \
+ --build-arg GRPC_VER=${GRPC_VER}
+
+.DEFAULT_GOAL := build
+
+# Builds the docker container with pre-requisite system and test libraries for
+# running openolt agent unit test cases.
+build: docker-build
+
+docker-build: openolt-test
+
+openolt-test:
+ ${DOCKER} build ${DOCKER_BUILD_ARGS} \
+ -t ${OPENOLT_TEST_IMAGENAME} \
+ -f docker/Dockerfile.openolt-test .
+
+docker-push:
+ifneq (false,$(DOCKER_LABEL_VCS_DIRTY))
+ @echo "Local repo is dirty. Refusing to push."
+ @exit 1
+endif
+ ${DOCKER} push ${OPENOLT_TEST_IMAGENAME}
+
+## runnable tool containers
+HADOLINT = ${DOCKER} run --rm --user $$(id -u):$$(id -g) -v $$PWD:/app ${VOLTHA_CI_TOOLS_IMAGENAME} hadolint --ignore DL3003 --ignore DL3015
+
+lint: docker-lint
+
+docker-lint:
+ @echo "Linting Dockerfiles..."
+ @${HADOLINT} $(shell ls docker/Dockerfile.*)
+ @echo "Dockerfiles linted OK"