diff --git a/build.py b/build.py index f882f662710117fa9a3fd2cd546d9c6d7110c059..036c0171be8f1af6b587568d73d67476dc7b8a08 100644 --- a/build.py +++ b/build.py @@ -75,6 +75,15 @@ class Build(object): cmd = "sed -i 's/OBS_EXTRAS_PROJECT=.*/OBS_EXTRAS_PROJECT=%s/g' script/setup_env.sh" % obs_extras_prj rmsg = os.popen(cmd).read() print(rmsg) + cmd = "cat script/setup_env.sh | grep OBS_EPOL_MULTI_VERSION_LIST" + rmsg = os.popen(cmd).read().split("=")[1].replace("\n", "") + if not rmsg: + cmd = "osc list | grep ^%s:Multi" % obs_epol_prj + rmsg = os.popen(cmd).read().replace("\n", " ").strip() + cmd = "sed -i 's/OBS_EPOL_MULTI_VERSION_LIST=.*/OBS_EPOL_MULTI_VERSION_LIST=\"{0}\"/g' \ + script/setup_env.sh".format(rmsg) + rmsg = os.popen(cmd).read() + print(rmsg) def clean(self): """ diff --git a/script/setup_env.sh b/script/setup_env.sh index 62b221fc445b71d4057fb31177de532be30dff99..e2008ca4518af78cc32e7e85b78ff012959accf3 100644 --- a/script/setup_env.sh +++ b/script/setup_env.sh @@ -2,6 +2,7 @@ export OBS_STANDARD_PROJECT="openEuler:Mainline" export OBS_EPOL_PROJECT="openEuler:Epol" export OBS_EXTRAS_PROJECT="openEuler:Extras" +export OBS_EPOL_MULTI_VERSION_LIST= #=================================== export OPENEULER_CHROOT_PATH="/usr1/openeuler" export OS_NAME="openEuler" @@ -30,6 +31,7 @@ export OBS_EPOL_REPO_URL="http://${OBS_SERVER_IP}:82/${SUB_EPOL_REPO_URL}/standa export OBS_EXTRAS_REPO_URL="http://${OBS_SERVER_IP}:82/${SUB_EXTRAS_REPO_URL}/standard_${ARCH}" export OBS_BRINGINRELY_URL="http://${OBS_SERVER_IP}:88/bringInRely/standard_${ARCH}" + export RELEASE_ROOT_PATH="/repo/openeuler/dailybuild" export RELEASE_VERSION_DIR="${OS_NAME}-${OS_VERSION}" export RELEASE_ARCH_DIR="openEuler_${ARCH}" diff --git a/script/step/get_epol_rpms.sh b/script/step/get_epol_rpms.sh index 5e14dd4fd7824442f5fb48889487ec958412123a..7c9763588c2a96118debafb51a4929e0a435ae4b 100644 --- a/script/step/get_epol_rpms.sh +++ b/script/step/get_epol_rpms.sh @@ -27,6 +27,7 @@ function get_epol_rpms_inchroot() TIME=${TIME_DIR##*/} TIME=${TIME#"${version}"-} CUSTOM_DIR="${TIME_DIR}" + RELEASE_DIR="${release_dir}/EPOL" set +e mv /etc/yum.repos.d /etc/yum.repos.d.bak mkdir -p /etc/yum.repos.d /tmp/EPOL/${ARCH}/Packages "/tmp/EPOL/source/Packages" @@ -35,44 +36,74 @@ function get_epol_rpms_inchroot() else bringinrely_repo="" fi + # main standard yum-config-manager --add-repo "${OBS_EPOL_REPO_URL}" ${bringinrely_repo} yum clean all - RELEASE_DIR="${release_dir}/EPOL" - SSH_CMD="mkdir -p ${RELEASE_DIR}" - sshcmd "${SSH_CMD}" - SSH_CMD="mkdir -p ${RELEASE_DIR}/update/${ARCH}/Packages" - sshcmd "${SSH_CMD}" - SSH_CMD="createrepo -d ${RELEASE_DIR}/update/${ARCH}" + SSH_CMD="mkdir -p ${RELEASE_DIR}/main" sshcmd "${SSH_CMD}" - SSH_CMD="mkdir -p ${release_dir}/update/${ARCH}/Packages" - sshcmd "${SSH_CMD}" - SSH_CMD="createrepo -d ${release_dir}/update/${ARCH}" - sshcmd "${SSH_CMD}" - - yum list --installroot="/tmp/EPOL/aarch64/Packages" --available | awk '{print $1}' | grep -E "noarch|${ARCH}" | grep -v ".src" > ava_epol_lst - - yumdownloader --installroot="/tmp/EPOL/${ARCH}/Packages" --destdir="/tmp/EPOL/${ARCH}/Packages" $(cat ava_epol_lst | tr '\n' ' ') - rm -rf /tmp/EPOL/${ARCH}/Packages/var - createrepo -d /tmp/EPOL/${ARCH} - sshscp "/tmp/EPOL/${ARCH}" "${RELEASE_DIR}" + tmp_dir="/tmp/EPOL/main/${ARCH}" + mkdir -p ${tmp_dir}/Packages + yum list --installroot="${tmp_dir}/Packages" --available | awk '{print $1}' | grep -E "noarch|${ARCH}" | grep -v ".src" > ava_epol_lst + yumdownloader --installroot="${tmp_dir}/Packages" --destdir="${tmp_dir}/Packages" $(cat ava_epol_lst | tr '\n' ' ') + rm -rf ${tmp_dir}/Packages/var + createrepo -d ${tmp_dir} + sshscp "${tmp_dir}" "${RELEASE_DIR}/main/" if [[ "$ARCH" == "aarch64" ]];then rm -rf /etc/yum.repos.d/* - yum-config-manager --add-repo "${OBS_EPOL_REPO_URL}" + yum-config-manager --add-repo "${OBS_EPOL_REPO_URL%/*}/standard_aarch64" --add-repo "${OBS_EPOL_REPO_URL%/*}/standard_x86_64" yum clean all - yum list --installroot="/tmp/EPOL/aarch64/Packages" --available | awk '{print $1}' | grep -E "noarch|${ARCH}" | grep -v ".src" > ava_epol_lst - yumdownloader --installroot="/tmp/EPOL/source/Packages" --destdir="/tmp/EPOL/source/Packages" --source $(cat ava_epol_lst | tr '\n' ' ') - rm -rf /tmp/EPOL/source/Packages/var - createrepo -d /tmp/EPOL/source - sshscp "/tmp/EPOL/source" "${RELEASE_DIR}" - SSH_CMD="mkdir -p ${RELEASE_DIR}/update/source/Packages" + tmp_source="/tmp/EPOL/main/source" + mkdir -p ${tmp_source}/Packages + yum list --installroot="${tmp_source}/Packages" --available | awk '{print $1}' | grep -E "noarch|${ARCH}" | grep -v ".src" > ava_epol_lst + yumdownloader --installroot="${tmp_source}/Packages" --destdir="${tmp_source}/Packages" --source $(cat ava_epol_lst | tr '\n' ' ') + rm -rf ${tmp_source}/Packages/var + createrepo -d ${tmp_source} + sshscp "${tmp_source}" "${RELEASE_DIR}/main/" + SSH_CMD="mkdir -p ${RELEASE_DIR}/update/main/source/Packages && createrepo -d ${RELEASE_DIR}/update/main/source" sshcmd "${SSH_CMD}" - SSH_CMD="createrepo -d ${RELEASE_DIR}/update/source" - sshcmd "${SSH_CMD}" - SSH_CMD="mkdir -p ${release_dir}/update/source/Packages" - sshcmd "${SSH_CMD}" - SSH_CMD="createrepo -d ${release_dir}/update/source" + SSH_CMD="mkdir -p ${release_dir}/update/source/Packages && createrepo -d ${release_dir}/update/source" sshcmd "${SSH_CMD}" fi + # multi version + if [[ ${OBS_EPOL_MULTI_VERSION_LIST} != "" ]];then + for r in ${OBS_EPOL_MULTI_VERSION_LIST} + do + SUB_EPOL_MULTI_REPO_URL="$(echo ${r//:/:\/})" + TMP=`echo ${r%:*}` + PKG=`echo ${TMP##*:}` + VER=`echo ${r##*:}` + tmp_dir="/tmp/EPOL/multi_version/${PKG}-${VER}/${ARCH}" + mkdir -p ${tmp_dir}/Packages + repo_url="http://${OBS_SERVER_IP}:82/${SUB_EPOL_MULTI_REPO_URL}/standard_${ARCH}" + rm -rf /etc/yum.repos.d/* + yum-config-manager --add-repo ${repo_url} + yum clean all + yum list --installroot="${tmp_dir}/Packages" --available | awk '{print $1}' | grep -E "noarch|${ARCH}" | grep -v ".src" > ava_epol_lst + yumdownloader --installroot="${tmp_dir}/Packages" --destdir="${tmp_dir}/Packages" $(cat ava_epol_lst | tr '\n' ' ') + rm -rf ${tmp_dir}/Packages/var + createrepo -d ${tmp_dir} + SSH_CMD="mkdir -p ${RELEASE_DIR}/multi_version/${PKG}-${VER}" + sshcmd "${SSH_CMD}" + sshscp "${tmp_dir}" "${RELEASE_DIR}/multi_version/${PKG}-${VER}/" + if [[ "${ARCH}" == "aarch64" ]];then + tmp_source="/tmp/EPOL/multi_version/${PKG}-${VER}/source" + mkdir -p ${tmp_source}/Packages + yum-config-manager --add-repo "http://${OBS_SERVER_IP}:82/${SUB_EPOL_MULTI_REPO_URL}/standard_x86_64" + yum list --installroot="${tmp_source}/Packages" --available | awk '{print $1}' | grep -E "noarch|${ARCH}" | grep -v ".src" > ava_epol_lst + yumdownloader --installroot="${tmp_source}/Packages" --destdir="${tmp_source}/Packages" --source $(cat ava_epol_lst | tr '\n' ' ') + rm -rf ${tmp_source}/Packages/var + createrepo -d ${tmp_source} + sshscp "${tmp_source}" "${RELEASE_DIR}/multi_version/${PKG}-${VER}" + fi + done + fi + SSH_CMD="mkdir -p ${RELEASE_DIR}/update/main/${ARCH}/Packages ${RELEASE_DIR}/update/multi_version" + sshcmd "${SSH_CMD}" + SSH_CMD="createrepo -d ${RELEASE_DIR}/update/main/${ARCH}" + sshcmd "${SSH_CMD}" + SSH_CMD="mkdir -p ${release_dir}/update/${ARCH}/Packages && createrepo -d ${release_dir}/update/${ARCH}" + sshcmd "${SSH_CMD}" + rm -rf /tmp/EPOL rm -rf /etc/yum.repos.d mv /etc/yum.repos.d.bak /etc/yum.repos.d