summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apex/build.py25
-rwxr-xr-xci/build.sh16
-rw-r--r--docs/release/release-notes/release-notes.rst2
3 files changed, 19 insertions, 24 deletions
diff --git a/apex/build.py b/apex/build.py
index cda4e061..2d0786a8 100644
--- a/apex/build.py
+++ b/apex/build.py
@@ -15,6 +15,8 @@ import sys
import uuid
import yaml
+from apex.common import utils
+
CACHE_JOURNAL = 'cache_journal.yaml'
TMP_CACHE = '.cache'
BUILD_ROOT = 'build'
@@ -116,6 +118,12 @@ def build(build_root, version, iso=False, rpms=False):
make_args = ['RELEASE={}'.format(version)]
else:
make_args = []
+ logging.info('Running make clean...')
+ try:
+ subprocess.check_call(['make', '-C', build_root, 'clean'])
+ except subprocess.CalledProcessError:
+ logging.error('Failure to make clean')
+ raise
logging.info('Building targets: {}'.format(make_targets))
try:
output = subprocess.check_output(["make"] + make_args + ["-C",
@@ -216,13 +224,13 @@ if __name__ == '__main__':
console.setLevel(log_level)
console.setFormatter(logging.Formatter(formatter))
logging.getLogger('').addHandler(console)
- apex_root = os.path.split(os.getcwd())[0]
- if 'apex/apex' in apex_root:
- apex_root = os.path.split(apex_root)[0]
- for root, dirs, files in os.walk(apex_root):
- if BUILD_ROOT in dirs and 'apex/apex' not in root:
- apex_root = root
- break
+ # Since we only support building inside of git repo this should be fine
+ try:
+ apex_root = subprocess.check_output(
+ ['git', 'rev-parse', '--show-toplevel']).decode('utf-8').strip()
+ except subprocess.CalledProcessError:
+ logging.error("Must be in an Apex git repo to execute build")
+ raise
apex_build_root = os.path.join(apex_root, BUILD_ROOT)
if os.path.isdir(apex_build_root):
cache_tmp_dir = os.path.join(apex_root, TMP_CACHE)
@@ -232,6 +240,9 @@ if __name__ == '__main__':
raise ApexBuildException("Invalid path for apex root: {}. Must be "
"invoked from within Apex code directory.".
format(apex_root))
+ dep_playbook = os.path.join(apex_root,
+ 'lib/ansible/playbooks/build_dependencies.yml')
+ utils.run_ansible(None, dep_playbook)
unpack_cache(cache_tmp_dir, args.cache_dir)
build(apex_build_root, args.build_version, args.iso, args.rpms)
build_cache(cache_tmp_dir, args.cache_dir)
diff --git a/ci/build.sh b/ci/build.sh
deleted file mode 100755
index 113f35d6..00000000
--- a/ci/build.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-##############################################################################
-# Copyright (c) 2016 Dan Radez (Red Hat) and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
-set -e
-rpm -q ansible || sudo yum -y install ansible
-ansible-playbook --become -i "localhost," -c local $DIR/../lib/ansible/playbooks/build_dependencies.yml -vvv
-make -C $DIR/../build clean
-python3 $DIR/../apex/build.py $@
diff --git a/docs/release/release-notes/release-notes.rst b/docs/release/release-notes/release-notes.rst
index a4d653ee..7d8a78f9 100644
--- a/docs/release/release-notes/release-notes.rst
+++ b/docs/release/release-notes/release-notes.rst
@@ -243,7 +243,7 @@ Software Deliverables
- Apex overcloud .rpm (opnfv-apex) - For nosdn and OpenDaylight Scenarios
- Apex undercloud .rpm (opnfv-apex-undercloud)
- Apex common .rpm (opnfv-apex-common)
-- build.sh - Builds the above artifacts
+- build.py - Builds the above artifacts
- opnfv-deploy - Automatically deploys Target OPNFV System
- opnfv-clean - Automatically resets a Target OPNFV Deployment
- opnfv-util - Utility to connect to or debug Overcloud nodes + OpenDaylight