From 9887bb483aca5c1948ecb1939223036316574ed9 Mon Sep 17 00:00:00 2001 From: garciadeblas Date: Mon, 8 Jun 2020 09:55:28 +0000 Subject: [PATCH] Enable NG-UI in CICD Change-Id: I9b39ff161a32e9b559117c88d34264942e5d10e4 Signed-off-by: garciadeblas --- docker/Makefile | 3 +- docker/NG-UI/Dockerfile | 52 ++++++++++++++++++++++++++ docker/NG-UI/Makefile | 19 ++++++++++ docker/mk/Makefile.include | 18 ++++++++- jenkins/ci-pipelines/ci_stage_3.groovy | 2 +- 5 files changed, 91 insertions(+), 3 deletions(-) create mode 100644 docker/NG-UI/Dockerfile create mode 100644 docker/NG-UI/Makefile diff --git a/docker/Makefile b/docker/Makefile index 6e6ae572..f5056b76 100644 --- a/docker/Makefile +++ b/docker/Makefile @@ -1,5 +1,6 @@ # # Copyright 2017 Sandvine +# 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. @@ -13,5 +14,5 @@ # See the License for the specific language governing permissions and # limitations under the License. # -SUBDIRS = MON NBI osmclient RO LCM light-ui POL Keystone +SUBDIRS = MON NBI osmclient RO LCM light-ui POL Keystone NG-UI include mk/dirs.mk diff --git a/docker/NG-UI/Dockerfile b/docker/NG-UI/Dockerfile new file mode 100644 index 00000000..b781ec05 --- /dev/null +++ b/docker/NG-UI/Dockerfile @@ -0,0 +1,52 @@ +# 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. + +FROM ubuntu:18.04 + +RUN apt-get update && apt-get install -y curl xz-utils gnupg2 \ + && apt-get update && apt-get install -y apt-transport-https software-properties-common \ + && curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ + && echo "deb https://deb.nodesource.com/node_10.x xenial main" | tee -a /etc/apt/sources.list.d/nodesource.list \ + && echo "deb-src https://deb.nodesource.com/node_10.x xenial main" | tee -a /etc/apt/sources.list.d/nodesource.list \ + && apt-get update && apt-get install -y nodejs \ + && apt-get install -y nginx + +ARG REPOSITORY_BASE=http://osm-download.etsi.org/repository/osm/debian +ARG RELEASE=ReleaseSEVEN-daily +ARG REPOSITORY_KEY=OSM%20ETSI%20Release%20Key.gpg +ARG REPOSITORY=testing +ARG NGUI_VERSION + +RUN curl ${REPOSITORY_BASE}/${RELEASE}/${REPOSITORY_KEY} | apt-key add - +RUN add-apt-repository -y "deb ${REPOSITORY_BASE}/${RELEASE} ${REPOSITORY} NG-UI" && apt-get update + +RUN apt-get install -y osm-ngui${NGUI_VERSION} && \ + rm -rf /var/lib/apt/lists/* + +WORKDIR /usr/share/osm-ngui +RUN npm install +# Building app. +RUN npm run build +RUN cp /usr/share/osm-ngui/nginx.conf /etc/nginx/sites-available/default +#RUN cp /usr/share/osm-ngui/supervisor-app.conf /etc/supervisor/conf.d/ + +EXPOSE 80 + +HEALTHCHECK --start-period=130s --interval=10s --timeout=5s --retries=12 \ + CMD curl --silent --fail localhost:80 || exit 1 + +# Starting server. +CMD ["nginx", "-g", "daemon off;"] + diff --git a/docker/NG-UI/Makefile b/docker/NG-UI/Makefile new file mode 100644 index 00000000..0fb388be --- /dev/null +++ b/docker/NG-UI/Makefile @@ -0,0 +1,19 @@ +## +# 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. +## + +include ../mk/Makefile.include + +MDG=$(shell basename $(CURDIR)) diff --git a/docker/mk/Makefile.include b/docker/mk/Makefile.include index e19c7531..609c069c 100644 --- a/docker/mk/Makefile.include +++ b/docker/mk/Makefile.include @@ -1,3 +1,18 @@ +# +# 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 @@ -19,7 +34,7 @@ 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 +DEPS := MON IM LCM RO common osmclient devops NBI policy-module Keystone N2VC lightui NG-UI DEPS_TARGETS = $(addprefix $(MKBUILD)/.dep_, $(DEPS)) @@ -54,6 +69,7 @@ build: $(MKBUILD) $(DEPS_TARGETS) --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_NG-UI) \ $(DOCKER_ARGS) . clean: diff --git a/jenkins/ci-pipelines/ci_stage_3.groovy b/jenkins/ci-pipelines/ci_stage_3.groovy index 153abcbf..627db754 100644 --- a/jenkins/ci-pipelines/ci_stage_3.groovy +++ b/jenkins/ci-pipelines/ci_stage_3.groovy @@ -135,7 +135,7 @@ node("${params.NODE}") { // grab all stable upstream builds based on the dir("${RELEASE}") { - def list = ["RO", "openvim", "osmclient", "IM", "devops", "MON", "N2VC", "NBI", "common", "LCM", "POL", "LW-UI"] + def list = ["RO", "openvim", "osmclient", "IM", "devops", "MON", "N2VC", "NBI", "common", "LCM", "POL", "LW-UI", "NG-UI"] for (component in list) { step ([$class: 'CopyArtifact', projectName: "${component}${upstream_main_job}/${GERRIT_BRANCH}"]) -- 2.17.1