diff --git a/openeuler-ci-src/ci_projects_builders/projects_builders/views.py b/openeuler-ci-src/ci_projects_builders/projects_builders/views.py index 5316ef964d2e10b0ff661485113f21367b73586b..6f675ffb1d4f2aa3618f2ab4f43c2c9712229d2e 100644 --- a/openeuler-ci-src/ci_projects_builders/projects_builders/views.py +++ b/openeuler-ci-src/ci_projects_builders/projects_builders/views.py @@ -106,12 +106,13 @@ def run(owner, repo, number): # 查看工程是否创建成功 x86_project = 'multiarch/openeuler/x86-64/{}'.format(repo_name) aarch64_project = 'multiarch/openeuler/aarch64/{}'.format(repo_name) + riscv64_project = 'multiarch/openeuler/riscv64/{}'.format(repo_name) projects_created = False retest = 5 while retest > 0: time.sleep(60) - if server.get_job_name(x86_project) == repo_name and server.get_job_name(aarch64_project) == repo_name: - logger.info('Notice projects x86-64 & aarch64 for {} had been created.'.format(repo_name)) + if server.get_job_name(x86_project) == repo_name and server.get_job_name(aarch64_project) == repo_name and server.get_job_name(riscv64_project) == repo_name : + logger.info('Notice projects x86-64 & aarch64 & riscv64 for {} had been created.'.format(repo_name)) projects_created = True break retest -= 1 @@ -153,18 +154,22 @@ def run(owner, repo, number): user_list = [user['login_name'] for user in users] add_user_permissions(server, user_list, x86_project) add_user_permissions(server, user_list, aarch64_project) - # 修改x86-64和aarch64的指定node + add_user_permissions(server, user_list, riscv64_project) + # 修改x86-64和aarch64,riscv64的指定node logger.info('Config container level') with open('utils/container_level_mapping.yaml', 'r') as f: container_level_mapping = yaml.safe_load(f) x86_node = container_level_mapping.get('x86').get(container_level) aarch64_node = container_level_mapping.get('aarch64').get(container_level) + riscv64_node = container_level_mapping.get('riscv64').get(container_level) config_image_level(server, x86_node, x86_project) config_image_level(server, aarch64_node, aarch64_project) - # 修改x86-64和aarch64的初始脚本 + config_image_level(server, riscv64_node, riscv64_project) + # 修改x86-64和aarch64,riscv64的初始脚本 logger.info('Config init shell') config_init_shell(server, init_shell, x86_project) config_init_shell(server, init_shell, aarch64_project) + config_init_shell(server, init_shell, riscv64_project) logger.info('Finish dealing with the Merge Hook, waiting next Merge Hook.') diff --git a/src/ac/acl/spec/check_spec.py b/src/ac/acl/spec/check_spec.py index 1b77237ff2c1d026c9c36bf2fd316a3092baaacb..17b93fccdfffde58a4458ec4f66be892359bf607 100644 --- a/src/ac/acl/spec/check_spec.py +++ b/src/ac/acl/spec/check_spec.py @@ -285,7 +285,7 @@ class CheckSpec(BaseCheck): """ exclusive_arch = self._spec.get_exclusivearch() if exclusive_arch: - obj_s = list(set(exclusive_arch).intersection(("x86_64", "aarch64", "noarch"))) + obj_s = list(set(exclusive_arch).intersection(("x86_64", "aarch64", "riscv64", "noarch"))) logger.info("support arch:%s", " ".join(obj_s)) if obj_s and "noarch" in obj_s: diff --git a/src/build/gitee_comment.py b/src/build/gitee_comment.py index 85e1a17e55d86fb17df238a321b5eed11f16a8d0..523645856c46f237850386ee36b423033b6a4cdd 100755 --- a/src/build/gitee_comment.py +++ b/src/build/gitee_comment.py @@ -94,6 +94,8 @@ class Comment(object): return True, "aarch64" if "x86-64" in name and "x86_64" in comment_file: return True, "x86_64" + if "riscv64" in name and "riscv64" in comment_file: + return True, "riscv64" return False, "" @staticmethod @@ -534,6 +536,8 @@ class Comment(object): return True if "x86-64" in name and "x86_64" in comment_file: return True + if "riscv64" in name and "riscv64" in comment_file: + return True return False check_branches = None @@ -552,6 +556,8 @@ class Comment(object): arch = "x86_64" elif "aarch64" in name: arch = "aarch64" + elif "riscv64" in name: + arch = "riscv64" else: arch = name.split("/")[-2] if check_branches: diff --git a/src/build/related_rpm_package.py b/src/build/related_rpm_package.py index 2752431de1503119ce151a6192f9f85f0eb3f098..e04a47b7969b7837d29a64a6678f5f17f6e931fc 100755 --- a/src/build/related_rpm_package.py +++ b/src/build/related_rpm_package.py @@ -37,7 +37,7 @@ class RelatedRpms(object): :param repo: obs address :param obs_repo_url: obs repo :param project_name: project name - :param package_arch: aarch64/x86_64 + :param package_arch: aarch64/x86_64/riscv64 """ self._obs_addr = obs_addr self._obs_repo_url = obs_repo_url @@ -67,9 +67,12 @@ class RelatedRpms(object): if self._package_arch == "x86_64": self._arch_names["standard_x86_64/x86_64"] = os.path.join(temp_path, "x86_64.html") self._arch_names["standard_x86_64/noarch"] = os.path.join(temp_path, "x86_noarch.html") - else: + elif self._package_arch == "aarch64": self._arch_names["standard_aarch64/aarch64"] = os.path.join(temp_path, "aarch64.html") self._arch_names["standard_aarch64/noarch"] = os.path.join(temp_path, "noarch.html") + elif self._package_arch == "riscv64": + self._arch_names["standard_riscv64/riscv64"] = os.path.join(temp_path, "riscv64.html") + self._arch_names["standard_riscv64/noarch"] = os.path.join(temp_path, "riscv64_noarch.html") download_project_name = self._project_name.replace(":", ":/") rpm_base_name = os.path.basename(rpm_name).rsplit("-", 2)[0] rpm_arch_name = os.path.basename(rpm_name).split(".oe1")[-1] diff --git a/src/constant.py b/src/constant.py index bc774e68fd95c9ff2dfbf960ee57ac10b23dbf7c..d2eeb7157e63d8a4c3fe26857728892ebdcada1c 100644 --- a/src/constant.py +++ b/src/constant.py @@ -21,7 +21,7 @@ class Constant(object): class Constant """ - SUPPORT_ARCH = ["x86_64", "aarch64"] + SUPPORT_ARCH = ["x86_64", "aarch64", "riscv64"] GITEE_BRANCH_PROJECT_MAPPING = { "master": ["openEuler:Extras", "openEuler:Mainline", "openEuler:Epol", diff --git a/src/lib/approve.sh b/src/lib/approve.sh index d757cd4414d752cab3f8eaec9164f0b27e1136d5..bb23308c836bbad1a32f08099bf4fa56fe0d145c 100644 --- a/src/lib/approve.sh +++ b/src/lib/approve.sh @@ -23,8 +23,10 @@ function save_build_result() { log_info "***** Start to save build result *****" committer_pr_x86_64_dir="/repo/openeuler/src-openeuler${repo_server_test_tail}/${giteeTargetBranch}/${giteeCommitter}/${giteeRepoName}/x86_64/${giteePullRequestIid}/" committer_pr_aarch64_dir="/repo/openeuler/src-openeuler${repo_server_test_tail}/${giteeTargetBranch}/${giteeCommitter}/${giteeRepoName}/aarch64/${giteePullRequestIid}/" + committer_pr_riscv64_dir="/repo/openeuler/src-openeuler${repo_server_test_tail}/${giteeTargetBranch}/${giteeCommitter}/${giteeRepoName}/riscv64/${giteePullRequestIid}/" global_x86_64_dir="/repo/openeuler/src-openeuler${repo_server_test_tail}/${giteeTargetBranch}/0X080480000XC0000000/${giteeRepoName}/x86_64/" global_aarch64_dir="/repo/openeuler/src-openeuler${repo_server_test_tail}/${giteeTargetBranch}/0X080480000XC0000000/${giteeRepoName}/aarch64/" + global_riscv64_dir="/repo/openeuler/src-openeuler${repo_server_test_tail}/${giteeTargetBranch}/0X080480000XC0000000/${giteeRepoName}/riscv64/" log_info "***** Start to config remote shell *****" remote_place_cmd=$( @@ -60,6 +62,21 @@ if [[ -d "$committer_pr_aarch64_dir" && ("\$(ls -A $committer_pr_aarch64_dir | g cp $committer_pr_aarch64_dir/*.json $global_aarch64_dir/report/ fi fi +if [[ -d "$committer_pr_riscv64_dir" && ("\$(ls -A $committer_pr_riscv64_dir | grep '\.rpm$')" || "\$(ls -A $committer_pr_riscv64_dir | grep '\.json$')") ]]; then + if [[ ! -d "$global_riscv64_dir/report" ]]; then + mkdir -p $global_riscv64_dir/report + fi + if [[ -d "$global_riscv64_dir" && "\$(ls -A $global_riscv64_dir | grep '\.rpm$')" ]]; then + rm $global_riscv64_dir/*.rpm + fi + + if [[ -d "$committer_pr_riscv64_dir" && "\$(ls -A $committer_pr_riscv64_dir | grep '\.rpm$')" ]]; then + cp $committer_pr_riscv64_dir/*.rpm $global_riscv64_dir/ + fi + if [[ -d "$committer_pr_riscv64_dir" && "\$(ls -A $committer_pr_riscv64_dir | grep '\.json$')" ]]; then + cp $committer_pr_riscv64_dir/*.json $global_riscv64_dir/report/ + fi +fi EOF ) diff --git a/src/lib/comment.sh b/src/lib/comment.sh index 09a021f3f4fe601ca26e43ee1303b052b028554d..f6ee70f579662a7dc69edca5bb765fa2bb5c072e 100644 --- a/src/lib/comment.sh +++ b/src/lib/comment.sh @@ -3,10 +3,13 @@ check_item_comment_aarch64="" check_item_comment_x86="" +check_item_comment_riscv64="" compare_package_result_aarch64="" compare_package_result_x86="" +compare_package_result_riscv64="" detail_result_file_aarch64="" detail_result_file_x86_64="" +detail_result_file_riscv64="" repo_server_test_tail="" token=${giteetoken} @@ -34,9 +37,11 @@ function clearn_env() { # download compare package comment files check_item_comment_aarch64="${repo}_${prid}_aarch64_comment" check_item_comment_x86="${repo}_${prid}_x86_64_comment" + check_item_comment_riscv64="${repo}_${prid}_riscv64_comment" #cat $compare_package_comment_x86 compare_package_result_aarch64="${repo}_${prid}_aarch64_compare_result" compare_package_result_x86="${repo}_${prid}_x86_64_compare_result" + compare_package_result_riscv64="${repo}_${prid}_riscv64_compare_result" build_num_file="${repo_owner}_${repo}_${prid}_build_num.yaml" @@ -46,12 +51,18 @@ function clearn_env() { if [[ -e $check_item_comment_x86 ]]; then rm $check_item_comment_x86 fi + if [[ -e $check_item_comment_riscv64 ]]; then + rm $check_item_comment_riscv64 + fi if [[ -e $compare_package_result_aarch64 ]]; then rm $compare_package_result_aarch64 fi if [[ -e $compare_package_result_x86 ]]; then rm $compare_package_result_x86 fi + if [[ -e $compare_package_result_riscv64 ]]; then + rm $compare_package_result_riscv64 + fi if [[ -e build_num_file ]]; then rm $build_num_file fi @@ -64,13 +75,17 @@ function scp_comment_file() { fileserver_tmpfile_path="/repo/soe${repo_server_test_tail}/check_item" detail_result_file_aarch64="${repo}_aarch64.json" detail_result_file_x86_64="${repo}_x86_64.json" + detail_result_file_riscv64="${repo}_riscv64.json" scp -r -i ${SaveBuildRPM2Repo} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@${repo_server}:$fileserver_tmpfile_path/${check_item_comment_aarch64} . || log_info "file ${check_item_comment_aarch64} not exist" scp -r -i ${SaveBuildRPM2Repo} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@${repo_server}:$fileserver_tmpfile_path/${check_item_comment_x86} . || log_info "file ${check_item_comment_x86} not exist" + scp -r -i ${SaveBuildRPM2Repo} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@${repo_server}:$fileserver_tmpfile_path/${check_item_comment_riscv64} . || log_info "file ${check_item_comment_riscv64} not exist" #ls $WORKSPACE/${comment} scp -r -i ${SaveBuildRPM2Repo} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@${repo_server}:"/repo/openeuler/src-openeuler${repo_server_test_tail}/${tbranch}/${committer}/${repo}/aarch64/${prid}/${repo}_*.json" ${detail_result_file_aarch64} || log_info "file ${detail_result_file_aarch64} not exist" scp -r -i ${SaveBuildRPM2Repo} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@${repo_server}:"/repo/openeuler/src-openeuler${repo_server_test_tail}/${tbranch}/${committer}/${repo}/x86_64/${prid}/${repo}_*.json" ${detail_result_file_x86_64} || log_info "file ${detail_result_file_x86_64} not exist" + scp -r -i ${SaveBuildRPM2Repo} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@${repo_server}:"/repo/openeuler/src-openeuler${repo_server_test_tail}/${tbranch}/${committer}/${repo}/riscv64/${prid}/${repo}_*.json" ${detail_result_file_riscv64} || log_info "file ${detail_result_file_riscv64} not exist" scp -r -i ${SaveBuildRPM2Repo} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@${repo_server}:$fileserver_tmpfile_path/${compare_package_result_aarch64} . || log_info "file ${compare_package_result_aarch64} not exist" scp -r -i ${SaveBuildRPM2Repo} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@${repo_server}:$fileserver_tmpfile_path/${compare_package_result_x86} . || log_info "file ${compare_package_result_x86} not exist" + scp -r -i ${SaveBuildRPM2Repo} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@${repo_server}:$fileserver_tmpfile_path/${compare_package_result_riscv64} . || log_info "file ${compare_package_result_riscv64} not exist" ls $WORKSPACE/${compare_result} scp -r -i ${SaveBuildRPM2Repo} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@${repo_server}:$fileserver_tmpfile_path/${build_num_file} . || log_info "file ${build_num_file} not exist" scp -r -i ${SaveBuildRPM2Repo} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@${repo_server}:/repo/soe${repo_server_test_tail}/support_arch/${repo}_${prid}_support_arch . @@ -86,9 +101,9 @@ function exec_comment() { url_files_server="http://${repo_server}/src-openeuler${repo_server_test_tail}/${tbranch}/${committer}/${repo}/replace__arch/${prid}" export PYTHONPATH=${shell_path} python3 ${shell_path}/src/build/gitee_comment.py -o $repo_owner -r $repo -p $prid -c $committer -t ${token}\ - -b $jenkins_api_host -u $jenkins_user -j $jenkins_api_token -a ${check_item_comment_aarch64} ${check_item_comment_x86}\ - -f ${compare_package_result_x86},${compare_package_result_aarch64} -m ${commentid} -l ${url_files_server} \ - -d ${detail_result_file_x86_64},${detail_result_file_aarch64} -tb ${tbranch} --platform ${platform} + -b $jenkins_api_host -u $jenkins_user -j $jenkins_api_token -a ${check_item_comment_aarch64} ${check_item_comment_x86} ${check_item_comment_riscv64}\ + -f ${compare_package_result_x86},${compare_package_result_aarch64},${compare_package_result_riscv64} -m ${commentid} -l ${url_files_server} \ + -d ${detail_result_file_x86_64},${detail_result_file_aarch64},${detail_result_file_riscv64} -tb ${tbranch} --platform ${platform} log_info "***** End to exec comment *****" log_info "***** Start to exec comment to kafka*****" python3 ${shell_path}/src/build/comment_to_dashboard.py -r $repo -c $committer -m ${commentid} -g $jobtriggertime\