From 174ab4a2ca44af4c36dba2e881c2dbf85c940991 Mon Sep 17 00:00:00 2001 From: 刘学利 Date: Fri, 15 Nov 2024 05:16:59 +0000 Subject: Feature adapt rocky9 aarch64 --- .gitlab-ci.yml | 287 +++++++++++++++++++++++++++++---------------- CMakeLists.txt | 3 +- ci/travis.sh | 5 - support/CMakeLists.txt | 8 +- test/CMakeLists.txt | 4 +- test/test_protocol_run.zip | Bin 795325 -> 795539 bytes 6 files changed, 200 insertions(+), 107 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5253be4..a9ea367 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,155 +1,244 @@ variables: GIT_STRATEGY: "clone" - BUILD_IMAGE_CENTOS8: "git.mesalab.cn:7443/mesa_platform/build-env:rockylinux" BUILD_PADDING_PREFIX: /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX/ - INSTALL_DEPENDENCY_PLATFORM: sapp-devel libasan systemd-devel libnsl - INSTALL_DEPENDENCY_FRAMEWORK: libMESA_handle_logger-devel libcjson-devel libfieldstat4-devel libMESA_field_stat2-devel framework_env libMESA_prof_load-devel libbreakpad_mini-devel libMESA_htable-devel libuuid-devel - INSTALL_PREFIX: "/home/mesasoft/sapp_run/" + BUILD_IMAGE_X86_64_ROCKY8: "git.mesalab.cn:7443/mesa_platform/build-env:rocky8-for-sapp" + BUILD_IMAGE_AARCH64_ROCKY9: "git.mesalab.cn:7443/mesa_platform/build-env:rocky9-aarch64" + INSTALL_DEPENDENCY_PLATFORM: sapp-devel sapp libasan systemd-devel libnsl libuuid-devel perl-core + INSTALL_DEPENDENCY_FRAMEWORK: libMESA_handle_logger-devel libcjson-devel libMESA_field_stat2-devel framework_env libMESA_prof_load-devel libbreakpad_mini-devel libMESA_htable-devel libfieldstat3 libuuid libfieldstat4-devel + SYMBOL_TARGET: ssl + INSTALL_PREFIX: "/opt/tsg/sapp/" stages: -- analysis +- cppcheck - build - test -- package +- upload -run_cppcheck_for_centos8: - stage: analysis - image: $BUILD_IMAGE_CENTOS8 +.everything_before_script: &everything_before_script + - mkdir -p $BUILD_PADDING_PREFIX/$CI_PROJECT_NAMESPACE/ + - ln -s $CI_PROJECT_DIR $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH + - cd $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH + - yum install -y $INSTALL_DEPENDENCY_PLATFORM $INSTALL_DEPENDENCY_FRAMEWORK + - chmod +x ./ci/travis.sh + +############################################################################### +# cppcheck +############################################################################### +.cppcheck_script: + variables: + BUILD_TYPE: Debug + stage: cppcheck script: - - mkdir build || true - - cd build - - cmake3 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .. - - cppcheck --project=compile_commands.json + - mkdir build; cd build; cmake3 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .. + - > + cppcheck --project=compile_commands.json --enable=all --error-exitcode=1 - --suppress=unusedFunction - --suppress=missingInclude - --suppress=uselessAssignmentPtrArg - --suppress=unreachableCode - --suppress=unreadVariable + --suppress=sizeofDivisionMemfunc + --suppress=unsignedLessThanZero + --suppress=unusedFunction + --suppress=missingInclude + --suppress=uselessAssignmentPtrArg --suppress=unmatchedSuppression --suppress=variableScope + --suppress=unreadVariable + --suppress=cstyleCast + --suppress=memleakOnRealloc --suppress=constParameter - --suppress=*:${PROJECT_SOURCE_DIR}/src/utstring.h + --suppress=uselessAssignmentArg + --suppress=uninitvar + --suppress=unusedStructMember + --suppress=unreachableCode + --suppress=internalAstError + --suppress=nullPointerRedundantCheck + --suppress=ctunullpointer + --suppress=redundantAssignment + --suppress=duplicateValueTernary + --suppress=cstyleCast + --suppress=*:*/deps/* + +run_cppcheck_for_x86_64_rocky8: + extends: .cppcheck_script + image: $BUILD_IMAGE_X86_64_ROCKY8 tags: - - share + - tsg-os-builder-el8 -run_test_for_centos8: - stage: test - extends: .build_by_travis_for_centos8 - script: - - yum makecache - - ./ci/travis.sh - - cd build - - ctest3 --verbose +run_cppcheck_for_aarch64_rocky9: + extends: .cppcheck_script + image: $BUILD_IMAGE_AARCH64_ROCKY9 + tags: + - tsg-os-builder-aarch64 +############################################################################### +# build +############################################################################### .build_before_script: - before_script: - - mkdir -p $BUILD_PADDING_PREFIX/$CI_PROJECT_NAMESPACE/ - - ln -s $CI_PROJECT_DIR $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH - - cd $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH - - chmod +x ./ci/travis.sh - - yum makecache - - yum install -y elfutils-libelf-devel - - -.build_by_travis_for_centos8: - stage: build - image: $BUILD_IMAGE_CENTOS8 - extends: .build_before_script + before_script: *everything_before_script script: - ./ci/travis.sh - tags: - - share - -branch_build_debug_for_centos8: - stage: build - extends: .build_by_travis_for_centos8 - variables: + variables: + BUILD_TEST: "ON" BUILD_TYPE: Debug - except: - - /^develop.*$/i - - /^master.*$/i - - tags - -branch_build_release_for_centos8: + +.build_by_travis_for_x86_64_rocky8: stage: build + image: $BUILD_IMAGE_X86_64_ROCKY8 + extends: .build_before_script + tags: + - tsg-os-builder-el8 + +develop_build_for_x86_64_rocky8: + extends: .build_by_travis_for_x86_64_rocky8 variables: BUILD_TYPE: RelWithDebInfo - extends: .build_by_travis_for_centos8 + artifacts: + name: "$SYMBOL_TARGET-$CI_COMMIT_REF_NAME-debug" + paths: + - build/* except: - - /^develop.*$/i - - /^master.*$/i - tags -develop_build_debug_for_centos8: - stage: build - extends: .build_by_travis_for_centos8 +release_build_debug_for_x86_64_rocky8: + extends: .build_by_travis_for_x86_64_rocky8 variables: BUILD_TYPE: Debug PACKAGE: 1 - UPLOAD_RPM: 1 - ASAN_OPTION: ADDRESS - TESTING_VERSION_BUILD: 1 - PULP3_REPO_NAME: protocol-testing-x86_64.el8 - PULP3_DIST_NAME: protocol-testing-x86_64.el8 + ASAN_OPTION: "ADDRESS" artifacts: - name: "ssl-$CI_COMMIT_REF_NAME-debug" + name: "$SYMBOL_TARGET-$CI_COMMIT_REF_NAME-release" paths: - - build/*.rpm + - build/* only: - - /^develop.*$/i - - /^master.*$/i + - tags -develop_build_release_for_centos8: - stage: build - extends: .build_by_travis_for_centos8 +release_build_for_x86_64_rocky8: + extends: .build_by_travis_for_x86_64_rocky8 variables: BUILD_TYPE: RelWithDebInfo PACKAGE: 1 - UPLOAD_RPM: 1 - TESTING_VERSION_BUILD: 1 - PULP3_REPO_NAME: protocol-testing-x86_64.el8 - PULP3_DIST_NAME: protocol-testing-x86_64.el8 artifacts: - name: "ssl-$CI_COMMIT_REF_NAME-release" + name: "$SYMBOL_TARGET-$CI_COMMIT_REF_NAME-release" paths: - - build/*.rpm + - build/* only: - - /^develop.*$/i - - /^master.*$/i + - tags + +.build_by_travis_for_aarch64_rocky9: + stage: build + image: $BUILD_IMAGE_AARCH64_ROCKY9 + extends: .build_before_script + tags: + - tsg-os-builder-aarch64 + +develop_build_for_aarch64_rocky9: + extends: .build_by_travis_for_aarch64_rocky9 + variables: + BUILD_TYPE: RelWithDebInfo + artifacts: + name: "$SYMBOL_TARGET-$CI_COMMIT_REF_NAME-debug" + paths: + - build/* + except: + - tags -release_build_debug_for_centos8: - stage: package +release_build_debug_for_aarch64_rocky9: + extends: .build_by_travis_for_aarch64_rocky9 variables: BUILD_TYPE: Debug PACKAGE: 1 - UPLOAD_RPM: 1 - ASAN_OPTION: ADDRESS - PULP3_REPO_NAME: protocol-stable-x86_64.el8 - PULP3_DIST_NAME: protocol-stable-x86_64.el8 - extends: .build_by_travis_for_centos8 + ASAN_OPTION: "ADDRESS" artifacts: - name: "ssl-$CI_COMMIT_REF_NAME-debug" + name: "$SYMBOL_TARGET-$CI_COMMIT_REF_NAME-release" paths: - - build/*.rpm + - build/* only: - tags -release_build_release_for_centos8: - stage: package +release_build_for_aarch64_rocky9: + extends: .build_by_travis_for_aarch64_rocky9 variables: BUILD_TYPE: RelWithDebInfo PACKAGE: 1 - UPLOAD_RPM: 1 - UPLOAD_SYMBOL_FILES: 1 - SYMBOL_TARGET: ssl - PULP3_REPO_NAME: protocol-stable-x86_64.el8 - PULP3_DIST_NAME: protocol-stable-x86_64.el8 - extends: .build_by_travis_for_centos8 artifacts: - name: "ssl-$CI_COMMIT_REF_NAME-release" + name: "$SYMBOL_TARGET-$CI_COMMIT_REF_NAME-release" paths: - - build/*.rpm + - build/* + only: + - tags +############################################################################### +# test +############################################################################### +test_in_x86_64_rocky8: + stage: test + image: $BUILD_IMAGE_X86_64_ROCKY8 + allow_failure: false + script: + - *everything_before_script + - yum install -y $INSTALL_DEPENDENCY_PLATFORM $INSTALL_DEPENDENCY_FRAMEWORK + - cd build; ctest3 --verbose + dependencies: + - develop_build_for_x86_64_rocky8 + - release_build_for_x86_64_rocky8 + tags: + - tsg-os-builder-el8 + +test_in_aarch64_rocky9: + stage: test + image: $BUILD_IMAGE_AARCH64_ROCKY9 + allow_failure: false + script: + - *everything_before_script + - yum install -y $INSTALL_DEPENDENCY_PLATFORM $INSTALL_DEPENDENCY_FRAMEWORK + - cd build; ctest3 --verbose + dependencies: + - develop_build_for_aarch64_rocky9 + - release_build_for_aarch64_rocky9 + tags: + - tsg-os-builder-aarch64 + +############################################################################### +# upload +############################################################################### +.define_before_upload_x86_64_rocky8: + stage: upload + image: $BUILD_IMAGE_X86_64_ROCKY8 + before_script: + - pwd; ls -l ; cd build ; ls -l + - cp /root/rpm_upload_tools.py ./ + variables: + PULP3_REPO_NAME: protocol-stable-x86_64.el8 + PULP3_DIST_NAME: protocol-stable-x86_64.el8 + only: + - tags + tags: + - tsg-os-builder-el8 + +rpm_upload_for_x86_64_rocky8: + extends: .define_before_upload_x86_64_rocky8 + dependencies: + - release_build_debug_for_x86_64_rocky8 + - release_build_for_x86_64_rocky8 + script: + - python3 rpm_upload_tools.py $PULP3_REPO_NAME $PULP3_DIST_NAME *.rpm + +.define_before_upload_aarch64_rocky9: + stage: upload + image: $BUILD_IMAGE_AARCH64_ROCKY9 + before_script: + - pwd; ls -l ; cd build ; ls -l + - cp /root/rpm_upload_tools.py ./ + variables: + PULP3_REPO_NAME: protocol-stable-aarch64.el9 + PULP3_DIST_NAME: protocol-stable-aarch64.el9 only: - tags + tags: + - tsg-os-builder-aarch64 + +rpm_upload_for_aarch64_rocky9: + extends: .define_before_upload_aarch64_rocky9 + dependencies: + - release_build_debug_for_aarch64_rocky9 + - release_build_for_aarch64_rocky9 + script: + - python3 rpm_upload_tools.py $PULP3_REPO_NAME $PULP3_DIST_NAME *.rpm diff --git a/CMakeLists.txt b/CMakeLists.txt index 97cdace..9e13293 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,6 +42,7 @@ if (CMAKE_CXX_CPPCHECK) "--suppress=unreachableCode" "--suppress=constParameter" "--suppress=variableScope" + "--suppress=cstyleCast" "--suppress=*:${PROJECT_SOURCE_DIR}/src/utstring.h" ) message("cppcheck start...") @@ -74,7 +75,7 @@ else() set_target_properties(ssl PROPERTIES OUTPUT_NAME ${lib_name}) endif() -set(CMAKE_INSTALL_PREFIX /home/mesasoft/sapp_run/) +set(CMAKE_INSTALL_PREFIX /opt/tsg/sapp/) enable_testing() add_subdirectory(test) diff --git a/ci/travis.sh b/ci/travis.sh index 13fb857..a32b49f 100644 --- a/ci/travis.sh +++ b/ci/travis.sh @@ -61,8 +61,3 @@ make if [ -n "${PACKAGE}" ]; then make package fi - -if [ -n "${UPLOAD_RPM}" ]; then - cp ~/rpm_upload_tools.py ./ - python3 rpm_upload_tools.py ${PULP3_REPO_NAME} ${PULP3_DIST_NAME} *.rpm -fi diff --git a/support/CMakeLists.txt b/support/CMakeLists.txt index db6c0e1..1f02c74 100644 --- a/support/CMakeLists.txt +++ b/support/CMakeLists.txt @@ -2,11 +2,17 @@ include(ExternalProject) +if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") +set(OPENSSL_CONFIGURE_TARGET "linux-x86_64") +else() +set(OPENSSL_CONFIGURE_TARGET "linux-generic64") +endif() + ### OpenSSL 1.1.1m ExternalProject_Add(openssl PREFIX openssl URL ${CMAKE_CURRENT_SOURCE_DIR}/openssl-1.1.1m.tar.gz URL_MD5 8ec70f665c145c3103f6e330f538a9db - CONFIGURE_COMMAND ./Configure linux-x86_64 --prefix= --openssldir=/lib/ssl -fPIC no-shared + CONFIGURE_COMMAND ./Configure ${OPENSSL_CONFIGURE_TARGET} --prefix= --openssldir=/lib/ssl -fPIC no-shared BUILD_COMMAND ${MAKE_COMMAND} INSTALL_COMMAND make install_sw BUILD_IN_SOURCE 1) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index c379920..8af7e8d 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -9,7 +9,7 @@ include_directories(${CMAKE_SOURCE_DIR}/src/) ExternalProject_Add(ProtoTest PREFIX ProtoTest URL ${CMAKE_CURRENT_SOURCE_DIR}/test_protocol_run.zip - URL_MD5 71d8284b59af0286b5f31f0a3160bc44 + URL_MD5 7753123e9a29e17a7e0ab14c412a7e18 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX= -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} CONFIGURE_COMMAND "" BUILD_COMMAND "" @@ -35,6 +35,8 @@ add_library(${lib_name}_test_plug SHARED ${lib_name}_test_plug.cpp) target_link_libraries(${lib_name}_test_plug MESA_prof_load cjson) set_target_properties(${lib_name}_test_plug PROPERTIES PREFIX "") +add_test(NAME COPY_MAIN COMMAND sh -c "cp -r /home/mesasoft/sapp_run/tools/plugin_test_main ${PROTO_TEST_RUN_DIR}/test_protocol_plug_main") + add_test(NAME COPY_SO COMMAND sh -c "cp ${CMAKE_BINARY_DIR}/${lib_name}.so ${PROTO_TEST_RUN_DIR}/plug/protocol/${lib_name}/${lib_name}.so") add_test(NAME COPY_TEST_SO COMMAND sh -c "cp ${CMAKE_CURRENT_BINARY_DIR}/${lib_name}_test_plug.so ${PROTO_TEST_RUN_DIR}/plug/business/${lib_name}_test_plug/${lib_name}_test_plug.so") diff --git a/test/test_protocol_run.zip b/test/test_protocol_run.zip index 996f3fa..52aa01e 100644 Binary files a/test/test_protocol_run.zip and b/test/test_protocol_run.zip differ -- cgit v1.2.3