Skip to content
Snippets Groups Projects
Makefile.include 3.53 KiB
Newer Older
garciadeblas's avatar
garciadeblas committed
#
#   Copyright 2020 ETSI
#
#   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.
#
TOPDIR=$(shell readlink -f .|sed -e 's/\/docker\/.*//')
MKINCLUDE=$(TOPDIR)/docker/mk
MKBUILD=$(TOPDIR)/docker/build

all: build


REPOSITORY_BASE ?= http://osm-download.etsi.org/repository/osm/debian
Mark Beierl's avatar
Mark Beierl committed
RELEASE         ?= ReleaseEIGHT-daily
REPOSITORY_KEY  ?= OSM%20ETSI%20Release%20Key.gpg
REPOSITORY      ?= testing
NO_CACHE        ?= --no-cache

LOWER_MDG = $(shell echo $(MDG) | tr '[:upper:]' '[:lower:]')

CONTAINER_NAME ?= $(LOWER_MDG)

CMD_DOCKER_ARGS ?= -q
DOCKER_ARGS     = $(CMD_DOCKER_ARGS)

DEPS := MON IM LCM RO common osmclient devops NBI policy-module Keystone N2VC lightui ngui PLA tests

DEPS_TARGETS = $(addprefix $(MKBUILD)/.dep_, $(DEPS))

Q=@

$(MKBUILD):
	$Qmkdir -p $(MKBUILD)

$(MKBUILD)/.dep_policy-module:
	$Q$(MKINCLUDE)/get_version.sh -r $(REPOSITORY) -R $(RELEASE) -k $(REPOSITORY_KEY) -u $(REPOSITORY_BASE) -m POL -p policy-module > $@

$(MKBUILD)/.dep_lightui:
	$Q$(MKINCLUDE)/get_version.sh -r $(REPOSITORY) -R $(RELEASE) -k $(REPOSITORY_KEY) -u $(REPOSITORY_BASE) -m LW-UI -p lightui > $@
$(MKBUILD)/.dep_ngui:
	$Q$(MKINCLUDE)/get_version.sh -r $(REPOSITORY) -R $(RELEASE) -k $(REPOSITORY_KEY) -u $(REPOSITORY_BASE) -m NG-UI -p ngui > $@

$(MKBUILD)/.dep_%:
	$Q$(MKINCLUDE)/get_version.sh -r $(REPOSITORY) -R $(RELEASE) -k $(REPOSITORY_KEY) -u $(REPOSITORY_BASE) -m $* > $@

build: $(MKBUILD) $(DEPS_TARGETS)
	$Qdocker build -t opensourcemano/$(LOWER_MDG):$(TAG) \
                   --build-arg RELEASE=$(RELEASE) \
                   --build-arg REPOSITORY=$(REPOSITORY) \
                   --build-arg REPOSITORY_KEY=$(REPOSITORY_KEY) \
                   --build-arg REPOSITORY_BASE=$(REPOSITORY_BASE) \
                   --build-arg MON_VERSION==$(shell cat $(MKBUILD)/.dep_MON) \
                   --build-arg IM_VERSION==$(shell cat $(MKBUILD)/.dep_IM) \
                   --build-arg RO_VERSION==$(shell cat $(MKBUILD)/.dep_RO) \
                   --build-arg LCM_VERSION==$(shell cat $(MKBUILD)/.dep_LCM) \
                   --build-arg COMMON_VERSION==$(shell cat $(MKBUILD)/.dep_common) \
                   --build-arg OSMCLIENT_VERSION==$(shell cat $(MKBUILD)/.dep_osmclient) \
                   --build-arg NBI_VERSION==$(shell cat $(MKBUILD)/.dep_NBI) \
                   --build-arg POL_VERSION==$(shell cat $(MKBUILD)/.dep_policy-module) \
                   --build-arg PLA_VERSION==$(shell cat $(MKBUILD)/.dep_PLA) \
                   --build-arg DEVOPS_VERSION==$(shell cat $(MKBUILD)/.dep_devops) \
                   --build-arg N2VC_VERSION==$(shell cat $(MKBUILD)/.dep_N2VC) \
                   --build-arg LWUI_VERSION==$(shell cat $(MKBUILD)/.dep_lightui) \
                   --build-arg NGUI_VERSION==$(shell cat $(MKBUILD)/.dep_ngui) \
                   --build-arg TESTS_VERSION==$(shell cat $(MKBUILD)/.dep_tests) \
                   $(DOCKER_ARGS) .

clean:
	rm -f $(MKBUILD)/.dep*

tag:
	docker tag opensourcemano/$(CONTAINER_NAME):$(INPUT_TAG) opensourcemano/$(LOWER_MDG):$(TAG)
Mike Marchetti's avatar
Mike Marchetti committed

push: tag
	docker push opensourcemano/$(LOWER_MDG):$(TAG)