Age | Commit message (Expand) | Author | Files | Lines |
2016-02-23 | Including additional projects, aligning test content. |  ChristopherPrice | 4 | -16/+22 |
2016-02-17 | Merge "Next step platformoverview doc" |  Ryota Mibu | 5 | -59/+103 |
2016-02-16 | Next step platformoverview doc |  ulik | 5 | -59/+103 |
2016-02-16 | User guide updated for automated content inclusion. |  ChristopherPrice | 8 | -17/+27 |
2016-02-16 | correct file path in imported rst files |  Ryota MIBU | 2 | -3/+12 |
2016-02-16 | Revert "introduce @OPNFVDOCS_PATH@ and @PROJECT_PATH@" |  Ryota MIBU | 1 | -12/+4 |
2016-02-15 | introduce @OPNFVDOCS_PATH@ and @PROJECT_PATH@ |  Ryota MIBU | 1 | -4/+12 |
2016-02-15 | script: gather user guides automatically |  Ryota MIBU | 3 | -12/+5 |
2016-02-15 | script: gather installer config guides automatically |  Ryota MIBU | 5 | -34/+9 |
2016-02-12 | script: fix auto feature config builder |  Ryota MIBU | 2 | -11/+16 |
2016-02-11 | WIP: script: gather feature config guides automatically | .highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Builtin */
.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
.highlight .nd { color: #555555 } /* Name.Decorator */
.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */
.highlight .nl { color: #336699; font-style: italic } /* Name.Label */
.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
.highlight .py { color: #336699; font-weight: bold } /* Name.Property */
.highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #336699 } /* Name.Variable */
.highlight .ow { color: #008800 } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
.highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
.highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
.highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
.highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */
.highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */
.highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */
.highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */
.highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */
.highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */
.highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */
.highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */
.highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */
.highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
.highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
.highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
.highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
.highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */
.highlight .vc { color: #336699 } /* Name.Variable.Class */
.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
.highlight .vm { color: #336699 } /* Name.Variable.Magic */
.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */#!/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
##############################################################################
set -xe
display_usage ()
{
cat << EOF
$0 Builds the Apex OPNFV Deployment Toolchain
usage: $0 [ -c cache_dest_dir ] -r release_name [ --iso | --rpms ]
OPTIONS:
-c cache destination - destination to save tarball of cache
-r release name/version of the build result
--iso build the iso (implies RPMs too)
--rpms build the rpms
--debug enable debug
-h help, prints this help text
Example:
build -c file:///tmp/cache -r dev123
EOF
}
APEX_ROOT=$(dirname $(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd))
CACHE_DEST=""
CACHE_DIR="${APEX_ROOT}/.cache"
CACHE_NAME="apex-cache"
MAKE_TARGETS="images"
REQUIRED_PKGS="rpm-build python-docutils"
RELEASE_RPM=""
parse_cmdline() {
while [ "${1:0:1}" = "-" ]
do
case "$1" in
-h|--help)
display_usage
exit 0
;;
-c|--cache-dest)
CACHE_DEST=${2}
shift 2
;;
-r|--release)
RELEASE=${2}
shift 2
;;
--iso )
MAKE_TARGETS="iso"
echo "Building opnfv-apex RPMs and ISO"
shift 1
;;
--rpms )
MAKE_TARGETS="rpms"
echo "Buiding opnfv-apex RPMs"
shift 1
;;
--release-rpm )
RELEASE_RPM=" release-rpm"
echo "Buiding opnfv-apex RPMs"
shift 1
;;
--debug )
debug="TRUE"
echo "Enable debug output"
shift 1
;;
--build-cache )
MAKE_TARGETS=""
echo "Building Cache"
shift 1
;;
*)
display_usage
exit 1
;;
esac
done
}
run_make() {
make $MAKE_ARGS -C ${BUILD_DIRECTORY} $1
}
parse_cmdline "$@"
if [ -z "$BUILD_DIRECTORY" ]; then
if [ -d "${APEX_ROOT}/build" ]; then
BUILD_DIRECTORY="${APEX_ROOT}/build"
else
echo "Cannot find build directory, please provide BUILD_DIRECTORY environment variable...exiting"
exit 1
fi
elif [ ! -d "$BUILD_DIRECTORY" ]; then
echo "Provided build directory is invalid: ${BUILD_DIRECTORY} ...exiting"
exit 1
fi
# Add release rpm to make targets if defined
MAKE_TARGETS+=$RELEASE_RPM
# Install build dependencies
for pkg in $REQUIRED_PKGS; do
if ! rpm -q $pkg > /dev/null; then
if ! sudo yum -y install $pkg > /dev/null; then
echo "Required package $pkg missing and installation failed."
exit 1
fi
fi
done
if [ -n "$RELEASE" ]; then MAKE_ARGS+="RELEASE=$RELEASE "; fi
# Get the Old Cache and build new cache history file
if [[ -n "$CACHE_DEST" && -n "$MAKE_TARGETS" ]]; then
echo "Retrieving Cache"
if [ -f $CACHE_DEST/${CACHE_NAME}.tgz ]; then
echo "Cache found at ${CACHE_DEST}/${CACHE_NAME}.tgz"
rm -rf $CACHE_DIR
mkdir $CACHE_DIR
echo "Unpacking Cache to ${CACHE_DIR}"
tar -xvzf ${CACHE_DEST}/${CACHE_NAME}.tgz -C ${CACHE_DIR}
echo "Cache contents after unpack:"
ls -al ${CACHE_DIR}
else
echo "No Cache Found"
fi
fi
# Ensure the build cache dir exists
if [ ! -d "$CACHE_DIR" ]; then
rm -rf ${CACHE_DIR}
echo "Creating Build Cache Directory"
mkdir ${CACHE_DIR}
fi
# Conditionally execute RPM build checks if the specs change and target is not rpm or iso
if [[ "$MAKE_TARGETS" == "images" ]]; then
commit_file_list=$(git show --pretty="format:" --name-status)
if git show -s | grep "force-build-rpms"; then
MAKE_TARGETS+=" rpms"
elif [[ $commit_file_list == *"A$(printf '\t')"* || $commit_file_list == *build/Makefile* ]]; then
# Makefile forces all rpms to be checked
MAKE_TARGETS+=" rpms-check"
else
# Spec files are selective
if [[ $commit_file_list == *build/rpm_specs/opnfv-apex-undercloud.spec* ]]; then
MAKE_TARGETS+=" undercloud-rpm-check"
fi
if [[ $commit_file_list == *build/rpm_specs/opnfv-apex-release.spec* ]]; then
MAKE_TARGETS+=" release-rpm-check"
fi
if [[ $commit_file_list == *build/rpm_specs/opnfv-apex-common.spec* ]]; then
MAKE_TARGETS+=" common-rpm-check"
fi
if [[ $commit_file_list == *build/rpm_specs/opnfv-apex.spec* ]]; then
MAKE_TARGETS+=" opendaylight-rpm-check"
fi
if [[ $commit_file_list == *build/rpm_specs/opnfv-apex-onos.spec* ]]; then
MAKE_TARGETS+=" onos-rpm-check"
fi
fi
fi
# Make sure python is installed
if ! rpm -q python34-devel > /dev/null; then
sudo yum install -y epel-release
if ! sudo yum install -y python34-devel; then
echo "Failed to install python34-devel package..."
exit 1
fi
fi
# Execute make against targets
for t in $MAKE_TARGETS; do
run_make $t
done
echo "Build Complete"
# Build new Cache
if [ -n "$CACHE_DEST" ]; then
echo "Building Cache"
ls -lah ${CACHE_DIR}
# ensure the destination exists
mkdir -p ${CACHE_DEST}
# roll the cache tarball
tar --atime-preserve --dereference -caf ${CACHE_DEST}/${CACHE_NAME}.tgz -C ${CACHE_DIR} .
if [ -f "${CACHE_DEST}/${CACHE_NAME}.tgz" ]; then
echo "Cache Build Complete"
else
echo "WARN: Cache file did not build correctly"
fi
fi
echo "Complete"
|