build_inf_centos: remove the build_image_rm
[pti/rtp.git] / scripts / build_inf_centos / build_inf_centos.sh
index 45063f6..cb34833 100755 (executable)
@@ -26,6 +26,7 @@ SRC_ORAN_BRANCH="master"
 SRC_ORAN_URL="https://gerrit.o-ran-sc.org/r/pti/rtp"
 
 SCRIPTS_DIR=$(dirname $(readlink -f $0))
+SCRIPTS_NAME=$(basename $0)
 TIMESTAMP=`date +"%Y%m%d_%H%M%S"`
 
 #########################################################################
@@ -35,7 +36,7 @@ TIMESTAMP=`date +"%Y%m%d_%H%M%S"`
 help_info () {
 cat << ENDHELP
 Usage:
-$(basename $0) [-w WORKSPACE_DIR] [-n] [-u] [-h]
+${SCRIPTS_NAME} [-w WORKSPACE_DIR] [-n] [-u] [-h]
 where:
     -w WORKSPACE_DIR is the path for the project
     -n dry-run only for bitbake
@@ -50,14 +51,14 @@ ENDHELP
 echo_step_start() {
     [ -n "$1" ] && msg_step=$1
     echo "#########################################################################################"
-    echo "## STEP START: ${msg_step}"
+    echo "## ${SCRIPTS_NAME} - STEP START: ${msg_step}"
     echo "#########################################################################################"
 }
 
 echo_step_end() {
     [ -n "$1" ] && msg_step=$1
     echo "#########################################################################################"
-    echo "## STEP END: ${msg_step}"
+    echo "## ${SCRIPTS_NAME} - STEP END: ${msg_step}"
     echo "#########################################################################################"
     echo
 }
@@ -121,6 +122,10 @@ STX_PRJ_OUTPUT=${WORKSPACE}/prj_output
 STX_MIRROR_DIR=${WORKSPACE}/mirror
 STX_MANIFEST_URL="https://opendev.org/starlingx/manifest"
 
+SRC_META_PATCHES=${SCRIPTS_DIR}/meta-patches
+
+ISO_INF_COS=inf-image-centos-all-x86-64.iso
+
 prepare_workspace () {
     msg_step="Create workspace for the CentOS build"
     echo_step_start
@@ -230,11 +235,33 @@ repo_init_sync () {
     echo_step_end
 }
 
-code_adjust () {
-    echo_step_start "Some codes need to be adjusted for INF project"
+patch_src () {
+    echo_step_start "Some source codes need to be patched for INF project"
 
     sed -i "s|/import/mirrors|${STX_MIRROR_DIR}|" \
         $MY_REPO/stx/metal/installer/pxe-network-installer/centos/build_srpm.data
+
+    # Apply meta patches
+    cd ${SRC_META_PATCHES}
+    src_dirs=$(find . -type f -printf "%h\n"|uniq)
+    for d in ${src_dirs}; do
+        cd ${MY_REPO_ROOT_DIR}/${d}
+
+        # backup current branch
+        local_branch=$(git rev-parse --abbrev-ref HEAD)
+        if [ "${local_branch}" = "HEAD" ]; then
+            git checkout ${STX_SRC_BRANCH}
+            local_branch=$(git rev-parse --abbrev-ref HEAD)
+        fi
+        git branch -m "${local_branch}_${TIMESTAMP}"
+        git checkout ${STX_SRC_BRANCH}
+
+        for p in $(ls -1 ${SRC_META_PATCHES}/${d}); do
+            echo_info "Apllying patch: ${SRC_META_PATCHES}/${d}/${p}"
+            git am ${SRC_META_PATCHES}/${d}/${p}
+        done
+    done
+
     echo_step_end
 }
 
@@ -243,28 +270,6 @@ populate_dl () {
     ${MY_REPO_ROOT_DIR}/stx-tools/toCOPY/populate_downloads.sh ${STX_MIRROR_DIR}/stx-6.0
 }
 
-# To be removed:
-# This build script can not successfully build out the image yet,
-# get the upstream image temporary so we can still test the CI job to
-# upload the image to nexus
-ISO_STX_COS=bootimage.iso
-ISO_UP_VER=6.0.0
-ISO_UP=http://mirror.starlingx.cengn.ca/mirror/starlingx/release/${ISO_UP_VER}/centos/flock/outputs/iso/${ISO_STX_COS}
-ISO_INF_COS=inf-image-centos-all-x86-64.iso
-
-build_image_rm () {
-    echo_step_start "Build CentOS images: To be removed"
-
-    mkdir -p ${STX_PRJ_OUTPUT}
-    cd ${STX_PRJ_OUTPUT}
-    wget -q ${ISO_UP} -O ${ISO_INF_COS}
-    ls -lh ${STX_PRJ_OUTPUT}/${ISO_INF_COS}
-
-    echo_step_end
-
-    echo_info "Build succeeded, you can get the image in ${STX_PRJ_OUTPUT}/${ISO_INF_COS}"
-}
-
 build_image () {
     echo_step_start "Build CentOS images"
 
@@ -273,17 +278,19 @@ build_image () {
     RUN_CMD="build-pkgs --build-avoidance"
     run_cmd "Build pkgs"
 
+    # The first run always fail
+    build-iso || sleep 60
+
     RUN_CMD="build-iso"
     run_cmd "Build ISO image"
 
-    cp ${MY_BUILD_DIR}/export/bootimage.iso ${STX_PRJ_OUTPUT}/${ISO_INF_COS}
+    cp -f ${MY_BUILD_DIR}/export/bootimage.iso ${STX_PRJ_OUTPUT}/${ISO_INF_COS}
 
     echo_step_end
 
     echo_info "Build succeeded, you can get the image in ${STX_PRJ_OUTPUT}/${ISO_INF_COS}"
 }
 
-
 #########################################################################
 # Main process
 #########################################################################
@@ -291,7 +298,6 @@ build_image () {
 prepare_workspace
 create_env
 repo_init_sync
-code_adjust
+patch_src
 populate_dl
-build_image_rm
-build_image || true
+build_image