1 ##############################################################################
2 # Copyright (c) 2015 Ericsson AB and others.
3 # stefan.k.berg@ericsson.com
4 # jonas.bjurel@ericsson.com
5 # All rights reserved. This program and the accompanying materials
6 # are made available under the terms of the Apache License, Version 2.0
7 # which accompanies this distribution, and is available at
8 # http://www.apache.org/licenses/LICENSE-2.0
9 ##############################################################################
13 TMP_ROOT_DIR := $(shell echo "$(MIRROR_UBUNTU_ROOT)" | cut -d "/" -f2)
15 include ../../config.mk
18 export OPENSTACK_VERSION
24 sudo apt-get install -y git libxml2-dev libxslt-dev python-dev python-pip libz-dev libyaml-dev createrepo python-yaml
26 sudo mkdir -p /var/www/nailgun
27 ln -sf ${F_SUBMOD_DIR}/fuel-mirror fuel-mirror
28 sudo pip install -U -r ./fuel-mirror/requirements.txt
29 sudo pip install ./fuel-mirror
30 sudo pip install ./fuel-mirror/contrib/fuel_mirror
31 ./opnfv_mirror_conf.py
32 sudo fuel-mirror --debug --config ./opnfv-config.yaml create --group ubuntu --pattern=ubuntu
33 sudo chmod -R 755 /var/www/nailgun
34 cp -Rp /var/www/nailgun .
35 # In the end we want to have ubuntu repository in mirrors/ubuntu directory
36 -if [ "$(MIRROR_UBUNTU_ROOT)" != "/ubuntu/" ]; then \
37 mkdir -p nailgun/mirrors/ubuntu;\
38 mv nailgun/mirrors$(MIRROR_UBUNTU_ROOT)* nailgun/mirrors/ubuntu;\
39 [ "$(MIRROR_UBUNTU_ROOT)" != "/" ] && rm -rf nailgun/mirrors/$(TMP_ROOT_DIR);\
41 # Store artifact in cache straight away if caching is enabled
42 # (no .cacheid will be present unless this is a cached build)
43 test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
47 @rm -rf ../release/opnfv/nailgun nailgun fuel-mirror opnfv-config.yaml ubuntu.yaml
51 @rm -Rf ../release/opnfv/nailgun
52 @mkdir -p ../release/opnfv
53 @cp -Rp nailgun ../release/opnfv/nailgun
54 @cp fuel_bootstrap_cli.yaml ../release/opnfv/
56 #############################################################################
57 # Cache operations - only used when building through ci/build.sh
58 #############################################################################
60 # Create a unique hash to be used for getting and putting cache, based on:
61 # - Year and week (causing the cache to be rebuilt weekly)
62 # - The contents of this Makefile
64 date +"Repocache %G%V" > .cachedata
65 sha1sum Makefile >> .cachedata
66 $(CACHETOOL) packages >> .cachedata
67 echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata
68 cat .cachedata | $(CACHETOOL) getid > .cacheid
70 # Clean local data related to caching - called prior to ordinary build
73 rm -f .cachedata .cacheid
75 # Try to download cache - called prior to ordinary build
78 @if $(CACHETOOL) check $(shell cat .cacheid); then \
79 $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\
81 echo "No cache item found for $(shell cat .cacheid)" ;\
85 # Store cache if not already stored - called after ordinary build
88 @tar cf - nailgun | $(CACHETOOL) put $(shell cat .cacheid)