blob: 3d04c1f8ee9df7f9da7eed0bbac3f3055102af28 [file] [log] [blame]
tierno7d782ef2019-10-04 12:56:31 +00001#!/bin/bash
2
3##
4# Licensed under the Apache License, Version 2.0 (the "License"); you may
5# not use this file except in compliance with the License. You may obtain
6# a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13# License for the specific language governing permissions and limitations
14# under the License.
15#
16# For those usages not covered by the Apache License, Version 2.0 please
17# contact with: nfvlabs@tid.es
18##
19
20# Generates the debian packages; and then generates a docker image base on Dockerfile-devops and update a
21# running docker stack with the generated image
22
23HERE=$(dirname $(readlink -f ${BASH_SOURCE[0]}))
24export RO_BASE=$(dirname $HERE)
25
26# clean
27docker rm -f ro_pkg 2>/dev/null && echo docker ro_pkg removed
28rm -rf $HERE/temp/*
tierno57dadcf2019-11-23 15:11:15 +000029find $RO_BASE -name "*.pyc" -exec rm {} ";"
tierno7d782ef2019-10-04 12:56:31 +000030mkdir -p $HERE/temp
31
32echo -e "\n\n[STAGE 1] Builind dockerfile userd for the package generation"
33docker build $RO_BASE -f $RO_BASE/Dockerfile -t opensourcemano/ro_pkg
34sleep 2
35
36echo "[STAGE 1.1] Generting packages inside docker ro_pkg"
37docker run -d --name ro_pkg opensourcemano/ro_pkg bash -c 'sleep 3600'
38docker cp $RO_BASE ro_pkg:/RO
39docker exec ro_pkg bash -c 'cd /RO; ./devops-stages/stage-build.sh'
40deb_files=`docker exec ro_pkg bash -c 'ls /RO/deb_dist/'`
41[ -z "$deb_files" ] && echo "No packages generated" >&2 && exit 1
42echo $deb_files
43
44echo -e "\n\n[STAGE 1.2] Print package information and copy to '$HERE/temp/'"
45# print package information and copy to "$HERE/temp/"
46for deb_file in $deb_files ; do
47 echo; echo; echo
48 echo $deb_file info:
49 echo "==========================="
50 docker cp ro_pkg:/RO/deb_dist/$deb_file $HERE/temp/
51 dpkg -I $HERE/temp/$(basename $deb_file)
52done
53
54# docker rm -f ro_pkg
55echo -e "\n\n[STAGE 2] Building docker image opensourcemano/ro:py3_devops based on debian packages"
56docker build $HERE -f $HERE/Dockerfile-devops -t opensourcemano/ro:py3_devops ||
57 ! echo "error generating devops dockerfile" >&2 || exit 1
58sleep 2
59# docker run -d --name ro_devops opensourcemano/ro:py3_devops
60# docker run -ti exec ro_devops ro tenant-list || ! echo "Cannot exec ro client to get server tenants" >&2 || exit 1
61
62echo -e "\n\n[STAGE 3] Update service osm_ro with generated docker image"
63docker service update osm_ro --force --image opensourcemano/ro:py3_devops
64sleep 2
65docker container prune -f
66docker service logs osm_ro