oran-shell-release.yaml: release image for G
[pti/rtp.git] / scripts / build_inf_debian / build_inf_debian.sh
index 12561cd..df6ea5b 100755 (executable)
@@ -42,7 +42,7 @@ Usage:
 ${SCRIPTS_NAME} [-w WORKSPACE_DIR] [-m] [-n] [-u] [-h]
 where:
     -w WORKSPACE_DIR is the path for the project
-    -m use mirror for src and rpm pkgs
+    -m use mirror for src and deb pkgs
     -n dry-run only for bitbake
     -h this help info
 examples:
@@ -122,7 +122,7 @@ PRJ_NAME=prj-oran-stx-deb
 #STX_SRC_BRANCH="r/stx.${STX_VER}"
 
 # Temporary for master
-STX_TAG="master-3a9d121"
+STX_TAG="master-1ba0db8"
 STX_SRC_BRANCH="master"
 
 STX_LOCAL_DIR=${WORKSPACE}/localdisk
@@ -132,13 +132,18 @@ STX_SRC_DIR=${WORKSPACE}/src
 STX_PRJ_DIR=${WORKSPACE}/${PRJ_NAME}
 STX_PRJ_OUTPUT=${WORKSPACE}/prj_output
 STX_MIRROR_DIR=${WORKSPACE}/mirrors
+STX_APTLY_DIR=${WORKSPACE}/aptly
 STX_MINIKUBE_HOME=${WORKSPACE}/minikube_home
 STX_MANIFEST_URL="https://opendev.org/starlingx/manifest"
 
 #MIRROR_SRC_STX=infbuilder/inf-src-stx:${STX_VER}
-#MIRROR_CONTAINER_IMG=infbuilder/inf-debian-mirror:2022.11-stx-${STX_VER}
 MIRROR_SRC_STX=infbuilder/inf-src-stx:${STX_TAG}
-MIRROR_CONTAINER_IMG=infbuilder/inf-debian-mirror:2022.11-stx-${STX_TAG}
+MIRROR_CONTAINER_IMG=infbuilder/inf-debian-mirror:2022.11-stx-${STX_VER}
+MIRROR_APTLY_IMG=infbuilder/inf-debian-aptly:2022.11-stx-${STX_VER}
+
+STX_SHARED_REPO=http://mirror.starlingx.cengn.ca/mirror/starlingx/master/debian/monolithic/20221123T070000Z/outputs/aptly/deb-local-build/
+STX_SHARED_SOURCE=http://mirror.starlingx.cengn.ca/mirror/starlingx/master/debian/monolithic/20221123T070000Z/outputs/aptly/deb-local-source/
+
 
 SRC_META_PATCHES=${SCRIPTS_DIR}/meta-patches
 
@@ -148,7 +153,8 @@ prepare_workspace () {
     msg_step="Create workspace for the Debian build"
     echo_step_start
 
-    mkdir -p ${STX_LOCAL_SRC_DIR} ${STX_LOCAL_PRJ_DIR} ${STX_MIRROR_DIR} ${STX_PRJ_OUTPUT} ${STX_MINIKUBE_HOME}
+    mkdir -p ${STX_LOCAL_SRC_DIR} ${STX_LOCAL_PRJ_DIR} ${STX_MIRROR_DIR} \
+        ${STX_APTLY_DIR} ${STX_PRJ_OUTPUT} ${STX_MINIKUBE_HOME}
     rm -f ${STX_SRC_DIR} ${STX_PRJ_DIR}
     ln -sf $(realpath --relative-to=${WORKSPACE} ${STX_LOCAL_SRC_DIR}) ${STX_SRC_DIR}
     ln -sf $(realpath --relative-to=${WORKSPACE} ${STX_LOCAL_PRJ_DIR}) ${STX_PRJ_DIR}
@@ -219,6 +225,8 @@ repo_init_sync () {
 
         RUN_CMD="repo sync --force-sync"
         run_cmd "repo sync"
+
+        touch .repo-init-done
     fi
 
     echo_step_end
@@ -244,6 +252,7 @@ get_mirror_src () {
         tar xf stx-${STX_TAG}.tar.bz2
         mv stx-${STX_SRC_BRANCH}/* stx-${STX_SRC_BRANCH}/.repo .
         rm -rf stx-${STX_SRC_BRANCH} stx-${STX_TAG}.tar.bz2
+        touch .repo-init-done
 
     fi
 
@@ -254,19 +263,34 @@ get_mirror_pkg () {
     msg_step="Get deb mirror from dockerhub image"
     echo_step_start
 
-    if [ -d ${MIRROR_CONTAINER_IMG}/starlingx ]; then
+    if [ -d ${STX_MIRROR_DIR}/starlingx ]; then
         echo_info "The deb mirror already exists, skipping"
     else
         docker pull ${MIRROR_CONTAINER_IMG}
         docker create -ti --name inf-debian-mirror ${MIRROR_CONTAINER_IMG} sh
-        #docker cp inf-debian-mirror:/mirror_stx-${STX_VER}/. ${STX_MIRROR_DIR}
-        docker cp inf-debian-mirror:/mirror_stx-${STX_TAG}/. ${STX_MIRROR_DIR}
+        docker cp inf-debian-mirror:/mirror-stx-${STX_VER}/. ${STX_MIRROR_DIR}
         docker rm inf-debian-mirror
     fi
 
     echo_step_end
 }
 
+get_mirror_aptly () {
+    msg_step="Get deb mirror aptly from dockerhub image"
+    echo_step_start
+
+    if [ -f ${STX_APTLY_DIR}/aptly.conf ]; then
+        echo_info "The deb aptly already exists, skipping"
+    else
+        docker pull ${MIRROR_APTLY_IMG}
+        docker create -ti --name inf-debian-aptly ${MIRROR_APTLY_IMG} sh
+        docker cp inf-debian-aptly:/aptly-stx-${STX_VER}/. ${STX_APTLY_DIR}
+        docker rm inf-debian-aptly
+    fi
+
+    echo_step_end
+}
+
 patch_src () {
     echo_step_start "Some source codes need to be patched for INF project"
 
@@ -274,6 +298,14 @@ patch_src () {
     grep -q "${ORAN_REL}" ${STX_ISSUE_DIR}/issue* \
         || sed -i "s/\(@PLATFORM_RELEASE@\)/\1 - ${ORAN_REL}/" ${STX_ISSUE_DIR}/issue*
 
+    grep -q "\-\-parallel" ${STX_REPO_ROOT}/stx-tools/stx/lib/stx/stx_build.py \
+        || sed -i 's/\(build-pkgs -a \)/\1 --parallel 2 --reuse /' \
+        ${STX_REPO_ROOT}/stx-tools/stx/lib/stx/stx_build.py
+
+    STX_LOCALRC="${STX_REPO_ROOT}/stx-tools/stx/stx-build-tools-chart/stx-builder/configmap/localrc.sample"
+    echo "export STX_SHARED_REPO=${STX_SHARED_REPO}" >> ${STX_LOCALRC}
+    echo "export STX_SHARED_SOURCE=${STX_SHARED_SOURCE}" >> ${STX_LOCALRC}
+
     # Apply meta patches
 
     if [ -d ${SRC_META_PATCHES} ]; then
@@ -339,6 +371,10 @@ build_image () {
 
     stx control status
 
+    # wait for all the pods running
+    sleep 600
+    stx control status
+
     RUN_CMD="stx build prepare"
     run_cmd "Build prepare"
 
@@ -348,10 +384,12 @@ build_image () {
     RUN_CMD="stx repomgr list"
     run_cmd "repomgr list"
 
-    RUN_CMD="stx shell -c 'build-pkgs -a --parallel 10'"
+    #RUN_CMD="stx shell -c 'build-pkgs -a --parallel 10'"
+    RUN_CMD="stx build world"
     run_cmd "Build-pkgs"
 
-    RUN_CMD="stx shell -c 'build-image'"
+    #RUN_CMD="stx shell -c 'build-image'"
+    RUN_CMD="stx build image"
     run_cmd "Build ISO image"
 
     cp -f ${STX_LOCAL_DIR}/deploy/starlingx-intel-x86-64-cd.iso ${STX_PRJ_OUTPUT}/${ISO_INF_DEB}
@@ -369,7 +407,8 @@ prepare_workspace
 create_env
 if [ "${USE_MIRROR}" == "Yes" ]; then
     get_mirror_src
-    #get_mirror_pkg
+    get_mirror_pkg
+    get_mirror_aptly
 else
     repo_init_sync
 fi