diff options
Diffstat (limited to 'fuel/ci')
-rw-r--r-- | fuel/ci/README | 106 | ||||
-rwxr-xr-x | fuel/ci/build.sh | 269 | ||||
-rwxr-xr-x | fuel/ci/deploy.sh | 8 |
3 files changed, 0 insertions, 383 deletions
diff --git a/fuel/ci/README b/fuel/ci/README deleted file mode 100644 index aab823bc0..000000000 --- a/fuel/ci/README +++ /dev/null @@ -1,106 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -The genesis/fuel/ci directory holds all Fuel@OPNFV abstractions for the OPNFV -community release and continous integration pipeline. -There are two Fuel@OPNF autonomous scripts fo this, complying to the OPNFV CI pipeline guideline: - - build.sh - - deploy.sh - -For more info on usage: -./build.sh -h -sudo ./deploy.sh -h -python deploy.py -h - -usage: python deploy.py [-h] [-nf] [-nh] [-fo] [-co] [-c] [-iso [ISO_FILE]] - [-dea [DEA_FILE]] [-dha [DHA_FILE]] [-s STORAGE_DIR] - [-b PXE_BRIDGE] [-p FUEL_PLUGINS_DIR] - -optional arguments: - -h, --help show this help message and exit - -nf Do not install Fuel Master (and Node VMs when using - libvirt) - -nh Don't run health check after deployment - -fo Install Fuel Master only (and Node VMs when using - libvirt) - -co Cleanup VMs and Virtual Networks according to what is - defined in DHA - -c Cleanup after deploy - -iso [ISO_FILE] ISO File [default: OPNFV.iso] - -dea [DEA_FILE] Deployment Environment Adapter: dea.yaml - -dha [DHA_FILE] Deployment Hardware Adapter: dha.yaml - -s STORAGE_DIR Storage Directory [default: images] - -b PXE_BRIDGE Linux Bridge for booting up the Fuel Master VM - [default: pxebr] - -p FUEL_PLUGINS_DIR Fuel Plugins directory - - - -* EXAMPLES: - -- Install Fuel Master and deploy OPNFV Cloud from scratch on Hardware Environment: - - sudo ./deploy.sh -iso ~/ISO/opnfv.iso -dea ~/CONF/hardware/dea.yaml -dha ~/CONF/hardware/dha.yaml -s /mnt/images -b pxebr - - -- Install Fuel Master and deploy OPNFV Cloud from scratch on Virtual Environment: - - sudo ./deploy.sh -iso ~/ISO/opnfv.iso -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -s /mnt/images - - -- Deploy OPNFV Cloud on an already active Environment where Fuel Master VM is running so no need to install Fuel again: - - sudo ./deploy.sh -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml - - => with plugin installation - sudo ./deploy.sh -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml - - => with cleanup after deployment is finished - sudo ./deploy.sh -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -c - - => no healthcheck after deployment is completed - sudo ./deploy.sh -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -nh - - -- Install Fuel Master only (and Node VMs when using virtual environment): - - => for virtual environment: - sudo ./deploy.sh -iso ~/ISO/opnfv.iso -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -s /mnt/images - - => for hardware environment: - sudo ./deploy.sh -iso ~/ISO/opnfv.iso -dea ~/CONF/hardware/dea.yaml -dha ~/CONF/hardware/dha.yaml -s /mnt/images -b pxebr - - -- Cleanup a running OPNFV environment: - - sudo ./deploy.sh -co -dha ~/CONF/virtual/dha.yaml - - -* WARNINGS: - -=> If optional argument -s <storage_dir> is not specified, Autodeployment will use -"<current_working_dir>/images" as default, and it will create it, if it hasn't been created before - -=> If optional argument -b <pxe_bridge> is not specified, Autodeployment will use "pxebr" as default, -if the bridge does not exist, the application will terminate with an error message - -=> If argument -iso [ISO_FILE] is not specified, Autodeployment will use "<current_working_dir>/OPNFV.iso" -as default, if the iso file does not exist, the application will terminate with an error message - -=> If argument -dea [DEA_FILE] is not specified, Autodeployment will use "<current_working_dir>/dea.yaml" -as default, if DEA file does not exist, the application will terminate with an error message - -=> If argument -dha [DHA_FILE] is not specified, Autodeployment will use "<current_working_dir>/dha.yaml" -as default, if DHA file does not exist, the application will terminate with an error message - -=> Optional argument -b PXE_BRIDGE is not required for Autodeployment in virtual environment, - even if it is specified it will not be used at all because virtual environment is using a different virtual network setup - -=> If optional argument -p FUEL_PLUGINS_DIR is not specified, no external plugins will be installed in Fuel
\ No newline at end of file diff --git a/fuel/ci/build.sh b/fuel/ci/build.sh deleted file mode 100755 index 62abba173..000000000 --- a/fuel/ci/build.sh +++ /dev/null @@ -1,269 +0,0 @@ -#!/bin/bash -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################ -# BEGIN of usage description -# -usage () -{ -cat | more << EOF -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -`basename $0`: Builds the Fuel@OPNFV stack - -usage: `basename $0` [-s spec-file] [-c cache-URI] [-l log-file] [-f flags] - [output-directory] - -OPTIONS: - -s spec-file (NOTE! DEPRECATED!) - define the build-spec file, default ../build/config.mk. The script only - verifies that the spec-file exists. - -c cache base URI - specifies the base URI to a build cache to be used/updated, supported - methods are http://, ftp:// and file:// - -l log-file - specifies the output log-file (stdout and stderr), if not specified - logs are output to console as normal - -v - version tag to be applied to the build result - -r - alternative remote access method script/program. curl is default. - -f flag[...] - build flags: - s: Do nothing, succeed - f: Do nothing, fail - D: Debug mode - P: Clear the local cache before building. This flag is only - valid if the "-c cache-URI" options has been specified and - and the method in the cache-URI is file:// (local cache). - - -h help, prints this help text - - output-directory, specifies the directory for the output artifacts - (.iso file). If no output-directory is specified, the current path - when calling the script is used. - - -Description: - -build.sh builds the opnfv .iso artifact. -To reduce build time it uses build caches on a local or remote location. A -cache is rebuilt and uploaded if either of the below conditions are met: -1) The P(opulate) flag is set and the -c cache-base-URI is provided and set - to the method file:// , if -c is - not provided the cache will stay local. -2) If a cache is invalidated by the make system - the exact logic is encoded - in the cache.mk of the different parts of the build. -3) A valid cache does not exist on the specified -c cache-base-URI. - -A cache has a blob (binary data) and a meta file in the format of: - <SHA1>.blob - <SHA1>.meta - -Logging is by default to console, but can be directed elsewhere with the -l -option in which case both stdout and stderr is redirected to that destination. - -Built in unit testing of components is enabled by adding the t(est) flag. - -Return codes: - - 0 Success! - - 1-99 Unspecified build error - - 100-199 Build system internal error (not build it self) - - 101 Build system instance busy - - 200 Build failure - -Examples: - build -c http://opnfv.org/artifactory/fuel/cache \ - -d ~/jenkins/genesis/fuel/ci/output -f ti - -NOTE: At current the build scope is set to the git root of the repository, -d - destination locations outside that scope will not work! -EOF -} -# -# END of usage description -############################################################################ - -############################################################################ -# BEGIN of function error_exit - -error_exit() { - echo "$@" >&2 - exit 1 -} - -# -# END of function error_exit -############################################################################ - - -############################################################################ -# BEGIN of shorthand variables for internal use -# -SCRIPT_DIR=$(readlink -f $(dirname ${BASH_SOURCE[0]})) -BUILD_BASE=$(readlink -e ${SCRIPT_DIR}/../build/) -RESULT_DIR="${BUILD_BASE}/release" -BUILD_SPEC="${BUILD_BASE}/config.mk" -LOCAL_CACHE_ARCH_NAME="fuel-cache" - -# -# END of variables to customize -############################################################################ - -############################################################################ -# BEGIN of script assigned default variables -# -export CACHEBASE="file://$HOME/cache" -export CACHETRANSPORT="curl --silent" -CLEAR_CACHE=0 -MAKE_ARGS="" - -# -# END of script assigned variables -############################################################################ - -build() { - echo "CI build parameters:" - echo "SCRIPT_DIR = $SCRIPT_DIR" - echo "BUILD_BASE = $BUILD_BASE" - echo "RESULT_DIR = $RESULT_DIR" - echo "BUILD_SPEC = $BUILD_SPEC" - echo "LOCAL_CACHE_ARCH_NAME = $LOCAL_CACHE_ARCH_NAME" - echo "CLEAR_CACHE = $CLEAR_CACHE" - echo "DEBUG = $DEBUG" - echo "OUTPUT_DIR = $OUTPUT_DIR" - echo "BUILD_LOG = $BUILD_LOG" - echo "MAKE_ARGS = $MAKE_ARGS" - echo "CACHEBASE = $CACHEBASE" - echo "CACHETRANSPORT = $CACHETRANSPORT" - - - if [ "$CLEAR_CACHE" -eq 1 ]; then - echo $CACHEBASE | grep -q '^file://' $CACHE_BASE - if [ $? -ne 0 ]; then - error_exit "Can't clear a non-local cache!" - else - CACHEDIR=$(echo $CACHEBASE | sed 's;file://;;') - echo "Clearing local cache at $CACHEDIR..." - rm -rvf $CACHEDIR/* - fi - fi - - echo make ${MAKE_ARGS} cache - - cd ${BUILD_BASE} - if make ${MAKE_ARGS} cache; then - echo "Copying build result into $OUTPUT_DIR" - sort ${BUILD_BASE}/gitinfo*.txt > ${OUTPUT_DIR}/gitinfo.txt - cp ${RESULT_DIR}/*.iso ${OUTPUT_DIR} - cp ${RESULT_DIR}/*.iso.txt ${OUTPUT_DIR} - else - error_exit "Build failed" - fi -} - -############################################################################ -# BEGIN of main -# -while getopts "s:c:l:v:f:r:f:h" OPTION -do - case $OPTION in - s) - BUILD_SPEC=${OPTARG} - if [ ! -f ${BUILD_SPEC} ]; then - echo "spec file does not exist: $BUILD_SPEC - exiting ...." - exit 100 - fi - ;; - c) - # This value is used by cache.sh - export CACHEBASE=${OPTARG} - ;; - l) - BUILD_LOG=$(readlink -f ${OPTARG}) - ;; - v) - MAKE_ARGS+="REVSTATE=${OPTARG}" - ;; - r) - # This value is used by cache.sh - export CACHETRANSPORT=${OPTARG} - ;; - h) - usage - rc=0 - exit $rc - ;; - f) - BUILD_FLAGS=${OPTARG} - for ((i=0; i<${#BUILD_FLAGS};i++)); do - case ${BUILD_FLAGS:$i:1} in - s) - exit 0 - ;; - - f) - exit 1 - ;; - - P) - CLEAR_CACHE=1 - ;; - - D) - DEBUG=1 - ;; - - *) - error_exit "${BUILD_FLAGS:$i:1} is not a valid build flag - exiting ...." - ;; - esac - done - ;; - - *) - echo "${OPTION} is not a valid argument" - rc=100 - exit $rc - ;; - esac -done - -# Get output directory -shift $[$OPTIND - 1] -case $# in - 0) - # No directory on command line - OUTPUT_DIR=$(pwd) - ;; - 1) - # Directory on command line - OUTPUT_DIR=$(readlink -f $1) - ;; - *) - error_exit "Too many arguments" - ;; -esac -mkdir -p $OUTPUT_DIR || error_exit "Could not access output directory $OUTPUT_DIR" - - -if [ -n "${BUILD_LOG}" ]; then - touch ${BUILD_LOG} || error_exit "Could not write to log file ${BUILD_LOG}" - build 2>&1 | tee ${BUILD_LOG} -else - build -fi - -rc=$? -exit $rc - -# -# END of main -############################################################################ diff --git a/fuel/ci/deploy.sh b/fuel/ci/deploy.sh deleted file mode 100755 index d5b70d0d6..000000000 --- a/fuel/ci/deploy.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -set -o errexit -topdir=$(dirname $(readlink -f $BASH_SOURCE)) -deploydir=$(cd ${topdir}/../deploy; pwd) -pushd ${deploydir} > /dev/null -echo -e "python deploy.py $@\n" -python deploy.py $@ -popd > /dev/null
\ No newline at end of file |