X-Git-Url: https://gerrit.akraino.org/r/gitweb?p=ta%2Fbuild-tools.git;a=blobdiff_plain;f=lib.sh;h=50cf9b825f0f7270b9faf34272534139ebc72d08;hp=671d0419ed423dab65a8377cd231f19bdb99ac96;hb=HEAD;hpb=4ded4f2a805e9447be90751d7d4fb7e11552e545 diff --git a/lib.sh b/lib.sh index 671d041..50cf9b8 100644 --- a/lib.sh +++ b/lib.sh @@ -18,23 +18,17 @@ set -e LIBDIR="$(dirname $(readlink -f ${BASH_SOURCE[0]}))" -PUBLISH_RESULTS="${PUBLISH_RESULTS:-false}" -VIRT_CUSTOMIZE_MEM="${VIRT_CUSTOMIZE_MEM:-}" -VIRT_CUSTOMIZE_SMP="${VIRT_CUSTOMIZE_SMP:-}" -PARALLEL_BUILD_TIMEOUT="${PARALLEL_BUILD_TIMEOUT:-0}" -ENABLE_GOLDEN_IMAGE_ROOT_PASSWORD="${ENABLE_GOLDEN_IMAGE_ROOT_PASSWORD:-true}" -GOLDEN_BASE_IMAGE_TAR_URL=${GOLDEN_BASE_IMAGE_TAR_URL:-} GOLDEN_BASE_IMAGE_FETCH_USER=${GOLDEN_BASE_IMAGE_FETCH_USER:-} GOLDEN_BASE_IMAGE_FETCH_PASSWORD=${GOLDEN_BASE_IMAGE_FETCH_PASSWORD:-} -WORK=$(dirname $(dirname $LIBDIR)) -RPM_BUILDER=$(find $WORK -maxdepth 2 -type d -name rpmbuilder) +WORK=$(readlink -f ${WORK:-$(dirname $(dirname $LIBDIR))}) +mkdir -p $WORK WORKTMP=$WORK/tmp WORKLOGS=$WORKTMP/logs DURATION_LOG=$WORKLOGS/durations.log -MANIFEST_PATH=$WORK/.repo/manifests -BUILD_CONFIG_INI=$WORK/.repo/manifests/build_config.ini +MANIFEST_PATH=$(readlink -f ${MANIFEST_PATH:-$WORK/.repo/manifests}) +BUILD_CONFIG_INI=${BUILD_CONFIG_INI:-$MANIFEST_PATH/build_config.ini} GOLDEN_IMAGE_NAME=guest-image.img TMP_GOLDEN_IMAGE=$WORKTMP/$GOLDEN_IMAGE_NAME @@ -45,7 +39,6 @@ SRC_REPO_DIR=$WORKRESULTS/src_repo RPMLISTS=$WORKRESULTS/rpmlists CHECKSUM_DIR=$WORKRESULTS/bin_checksum RESULT_IMAGES_DIR=$WORKRESULTS/images -RPM_BUILDER_SETTINGS=$WORKTMP/mocksettings/mock.cfg function _read_build_config() { @@ -59,14 +52,15 @@ function _read_build_config() function _read_manifest_vars() { - PRODUCT_RELEASE_BUILD_ID="${BUILD_NUMBER:?0}" + PRODUCT_RELEASE_BUILD_ID="${BUILD_NUMBER:-0}" PRODUCT_RELEASE_LABEL="$(_read_build_config DEFAULT product_release_label)" } function _initialize_work_dirs() { + mkdir -p $WORK rm -rf $WORKRESULTS - mkdir -p $WORKRESULTS $REPO_FILES $REPO_DIR $RPMLISTS $CHECKSUM_DIR + mkdir -p $WORKRESULTS $REPO_FILES $REPO_DIR $SRC_REPO_DIR $RPMLISTS $CHECKSUM_DIR # dont clear tmp, can be used for caching mkdir -p $WORKTMP rm -rf $WORKLOGS @@ -115,58 +109,31 @@ function _success() _header "STEP OK: $@" } - -function _run_cmd() -{ - _info "[cmd-start]: $@" - stamp_start=$(date +%s) - time $@ 2>&1 || _abort "Command failed: $@" - stamp_end=$(date +%s) - echo "$((stamp_end - stamp_start)) $@" >> $DURATION_LOG.unsorted - sort -nr $DURATION_LOG.unsorted > $DURATION_LOG - _log "[cmd-end]: $@" -} - - -function _run_cmd_as_step() -{ - if [ $# -eq 1 -a -f $1 ]; then - step="$(basename $1)" - else - step="$@" - fi - _step $step - _run_cmd $@ - _success $step -} - - -function _add_rpms_to_repo() +function _add_rpms_to_localrepo() { - local repo_dir=$1 - local rpm_dir=$2 - mkdir -p $repo_dir - cp -f $(repomanage --keep=1 --new $rpm_dir) $repo_dir/ + local rpms=$@ + mkdir -p $REPO_DIR + mkdir -p $SRC_REPO_DIR + for rpm in $@; do + if grep ".src.rpm" <<< "$rpm"; then + cp -f $rpm $SRC_REPO_DIR + else + cp -f $rpm $REPO_DIR + fi + done + _create_localrepo } function _create_localrepo() { pushd $REPO_DIR - _run_cmd createrepo --workers=8 --update . + createrepo --workers=8 --update . popd pushd $SRC_REPO_DIR - _run_cmd createrepo --workers=8 --update . + createrepo --workers=8 --update . popd } -function _add_rpms_to_repos_from_workdir() -{ - _add_rpms_to_repo $REPO_DIR $1/buildrepository/mock/rpm - _add_rpms_to_repo $SRC_REPO_DIR $1/buildrepository/mock/srpm - #find $1/ -name '*.tar.gz' | xargs rm -f - true -} - function _publish_results() { local from=$1 @@ -222,11 +189,11 @@ function _get_package_list() function _load_docker_image() { local docker_image=$1 - local docker_image_url="$(_read_build_config DEFAULT docker_images)/${docker_image}.tar" if docker inspect ${docker_image} &> /dev/null; then echo "Using already built ${docker_image} image" else echo "Loading ${docker_image} image" + local docker_image_url="$(_read_build_config DEFAULT docker_images)/${docker_image}.tar" curl -L $docker_image_url | docker load fi }