Pin pip to 20.3.3 and disable tmpfs in DIB
[ta/build-tools.git] / lib.sh
diff --git a/lib.sh b/lib.sh
index 671d041..50cf9b8 100644 (file)
--- 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
 }