Merge "Use openjdk-8-jre by default"
[fuel.git] / build / f_isoroot / f_repobuild / Makefile
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 ##############################################################################
10
11 SHELL := /bin/bash
12 TOP := $(shell pwd)
13 TMP_ROOT_DIR := $(shell echo "$(MIRROR_UBUNTU_ROOT)" | cut -d "/" -f2)
14 # Enable use of exact repo commit if defined, else use Fuel main branch
15 FUEL_MIRROR_REPO?=https://github.com/openstack/fuel-mirror
16 # Point to the commit where 302 redirects are handled
17 # https://bugs.launchpad.net/fuel/mitaka/+bug/1593674
18 FUEL_MIRROR_COMMIT?=192a3d9f8f993afb12c5108dd9339c6688c23e11 #$(FUEL_MAIN_TAG)
19
20 include ../../config.mk
21
22 export MOS_VERSION
23 export OPENSTACK_VERSION
24
25 .PHONY: all
26 all: nailgun
27
28 nailgun:
29         sudo apt-get install -y git libxml2-dev libxslt-dev python-dev  python-pip libz-dev libyaml-dev createrepo python-yaml
30         rm -Rf nailgun
31         sudo mkdir -p /var/www/nailgun
32         git clone $(FUEL_MIRROR_REPO)
33         cd fuel-mirror && git checkout -q $(FUEL_MIRROR_COMMIT)
34         sudo pip install -U -r ./fuel-mirror/requirements.txt
35         sudo pip install ./fuel-mirror
36         sudo pip install ./fuel-mirror/contrib/fuel_mirror
37         ./opnfv_mirror_conf.py
38         sudo fuel-mirror --debug --config ./opnfv-config.yaml create --group ubuntu --pattern=ubuntu
39         sudo chmod -R 755 /var/www/nailgun
40         cp -Rp /var/www/nailgun .
41         # On the end we want to have ubuntu repository in mirrors/ubuntu directory
42         -if [ "$(MIRROR_UBUNTU_ROOT)" != "/ubuntu/" ]; then \
43           mkdir -p nailgun/mirrors/ubuntu;\
44           mv nailgun/mirrors$(MIRROR_UBUNTU_ROOT)* nailgun/mirrors/ubuntu;\
45           [ "$(MIRROR_UBUNTU_ROOT)" != "/" ] && rm -rf nailgun/mirrors/$(TMP_ROOT_DIR);\
46         fi
47         # Store artifact in cache straight away if caching is enabled
48         # (no .cacheid will be present unless this is a cached build)
49         test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
50
51 .PHONY: clean
52 clean:
53         @rm -rf ../release/opnfv/nailgun nailgun fuel-mirror opnfv-config.yaml ubuntu.yaml
54
55 .PHONY: release
56 release:nailgun
57         @rm -Rf ../release/opnfv/nailgun
58         @mkdir -p ../release/opnfv
59         @cp -Rp nailgun ../release/opnfv/nailgun
60         @cp fuel_bootstrap_cli.yaml ../release/opnfv/
61
62 #############################################################################
63 # Cache operations - only used when building through ci/build.sh
64 #############################################################################
65
66 # Create a unique hash to be used for getting and putting cache, based on:
67 #   - Year and week (causing the cache to be rebuilt weekly)
68 #   - The contents of this Makefile
69 .cacheid:
70         date +"Repocache %G%V" > .cachedata
71         sha1sum Makefile >> .cachedata
72         cat .cachedata | $(CACHETOOL) getid > .cacheid
73
74 # Clean local data related to caching - called prior to ordinary build
75 .PHONY: clean-cache
76 clean-cache: clean
77         rm -f .cachedata .cacheid
78
79 # Try to download cache - called prior to ordinary build
80 .PHONY: get-cache
81 get-cache: .cacheid
82         @if $(CACHETOOL) check $(shell cat .cacheid); then \
83                  $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\
84         else \
85                 echo "No cache item found for $(shell cat .cacheid)" ;\
86                 exit 0;\
87         fi
88
89 # Store cache if not already stored - called after ordinary build
90 .PHONY: put-cache
91 put-cache: .cacheid
92         @tar cf - nailgun | $(CACHETOOL) put $(shell cat .cacheid)