diff options
| author | 刘学利 <[email protected]> | 2022-03-15 09:58:49 +0000 |
|---|---|---|
| committer | 刘学利 <[email protected]> | 2022-03-15 09:58:49 +0000 |
| commit | 7929f35a25f64f497bfecd1a3c6e6e81df9a9fe3 (patch) | |
| tree | 8e92d48089b93742c4e17fcf95f76b366ecc655f | |
| parent | 9821e5fa23956d5aae13171aac9cede027345fd3 (diff) | |
TSG-9938: 适配rocky linux8.5v4.2.81
| -rw-r--r-- | .gitlab-ci.yml | 283 | ||||
| -rw-r--r-- | ci/envelope_rpm.sh | 13 | ||||
| -rw-r--r-- | ci/travis.sh | 5 | ||||
| -rw-r--r-- | ci/update-el8-repo.sh | 12 | ||||
| -rw-r--r-- | ci/upload_enveloped_rpm.sh | 23 | ||||
| -rw-r--r-- | cmake/Package.cmake | 4 |
6 files changed, 286 insertions, 54 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9278750..5f5037f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,10 +1,11 @@ -image: "git.mesalab.cn:7443/mesa_platform/build-env:master" variables: GIT_STRATEGY: "clone" BUILD_PADDING_PREFIX: /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX/ - INSTALL_PREFIX: "/home/mesasoft/sapp_run/" + BUILD_IMAGE_CENTOS7: "git.mesalab.cn:7443/mesa_platform/build-env:master" + BUILD_IMAGE_CENTOS8: "git.mesalab.cn:7443/mesa_platform/build-env:rockylinux" INSTALL_DEPENDENCY_LIBRARY: libunwind gperftools mrzcpd numactl-devel zlib-devel librdkafka-devel systemd-devel libMESA_htable-devel libMESA_prof_load-devel libcjson-devel libMESA_field_stat2-devel framework_env libwiredcfg-devel libWiredLB-devel libMESA_handle_logger-devel libbreakpad_mini-devel vim-common libMESA_jump_layer-devel libMESA_jump_layer sapp_benchmark SYMBOL_TARGET: sapp + INSTALL_PREFIX: "/home/mesasoft/sapp_run/" stages: - build @@ -12,8 +13,42 @@ stages: - upload - test -sapp_module_test: +.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_centos7: + stage: build + image: $BUILD_IMAGE_CENTOS7 + extends: .build_before_script + script: + - yum install -y libmnl-devel + - yum install -y libnfnetlink-devel + - ./ci/travis.sh + tags: + - share + +.build_by_travis_for_centos8: + stage: build + image: $BUILD_IMAGE_CENTOS8 + extends: .build_before_script + script: + - dnf --enablerepo=powertools install -y libmnl-devel + - dnf --enablerepo=powertools install -y libnfnetlink-devel + - dnf --enablerepo=powertools install -y libnsl + - sh +x ./ci/update-el8-repo.sh + - ./ci/travis.sh + tags: + - share + +sapp_module_test_for_centos7: stage: test + image: $BUILD_IMAGE_CENTOS7 allow_failure: true script: - yum makecache @@ -63,28 +98,80 @@ sapp_module_test: - ./gtest_sapp_v4 -f benchmark_inject.tcp* - ./gtest_sapp_v4 -f benchmark_inject.inline_same_dir - ./gtest_sapp_v4 -f benchmark_inject.inline_reverse_dir - - + dependencies: + - branch_build_debug_for_centos7 + - branch_build_release_for_centos7 + - develop_build_debug_for_centos7 + - develop_build_release_for_centos7 + - release_build_release_for_centos7 tags: - share - -.build_by_travis: - 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 +sapp_module_test_for_centos8: + stage: test + image: $BUILD_IMAGE_CENTOS8 + allow_failure: true script: - - yum makecache - - ./ci/travis.sh - - cd build + - sh +x ./ci/update-el8-repo.sh + - yum makecache + - yum install -y net-tools psmisc iproute initscripts gperftools-libs gdb snappy + - yum install -y libMESA_htable libMESA_prof_load libMESA_field_stat2 libMESA_handle_logger libcjson systemd systemd-devel libpcap libpcap-devel libbreakpad_mini libMESA_jump_layer + - yum install -y sapp gtest_sapp benchmark_pcap sapp_benchmark + - ls -l /opt/MESA/lib + - echo "/opt/MESA/lib" >> /etc/ld.so.conf + - ldconfig + - ldd /home/mesasoft/sapp_run/sapp + - ifconfig + - sysctl -w net.ipv6.conf.all.disable_ipv6=0 + - ifconfig + - ip neigh show + - ip -6 neigh show + - cp /builds/MESA_Platform/sapp/build/src/entry/sapp /home/mesasoft/sapp_run/sapp + - cp /builds/MESA_Platform/sapp/build/test/libsapp_devel.so /opt/MESA/lib + - ldconfig + - cd /home/mesasoft/sapp_run + - ldd gtest_sapp_v4 + - sed -i '14 i__log_test_sapp_benchmark_log.debug >stdout; other' etc/sapp_log.conf + - sed -i '11 i__log_runtimelog.info >stdout; other' etc/sapp_log.conf + - ulimit -c unlimited + - ./gtest_sapp_v4 -f ipv4.* + - ./gtest_sapp_v4 -f ipv6.* + - ./gtest_sapp_v4 -f udp.* + - ./gtest_sapp_v4 -f tcpall.* + - ./gtest_sapp_v4 -f tcp.* + - ./gtest_sapp_v4 -f control.* + - ./gtest_sapp_v4 -f project.* + - ./gtest_sapp_v4 -f stream_bridge.* + - ./gtest_sapp_v4 -f tunnel.* + - ./gtest_sapp_v4 -f appstate.* + - ./gtest_sapp_v4 -f timer.* + - ./gtest_sapp_v4 -f inject.* + - ./gtest_sapp_v4 -f plug_ctrl.* + - ./gtest_sapp_v4 -f jump_layer.* + - ./gtest_sapp_v4 -f inline_mode.* + - ./gtest_sapp_v4 -f asymmetric.* + - ./gtest_sapp_v4 -f proxy.* + - ./gtest_sapp_v4 -f fake_marsio.* + - ./gtest_sapp_v4 -f transparent.* + - ./gtest_sapp_v4 -f hybrid.* + - ./gtest_sapp_v4 -f pkt_dump.* + - ./gtest_sapp_v4 -f benchmark_drop.* + - ./gtest_sapp_v4 -f benchmark_forward.* + - ./gtest_sapp_v4 -f benchmark_inject.tcp* + - ./gtest_sapp_v4 -f benchmark_inject.inline_same_dir + - ./gtest_sapp_v4 -f benchmark_inject.inline_reverse_dir + dependencies: + - branch_build_debug_for_centos8 + - branch_build_release_for_centos8 + - develop_build_debug_for_centos8 + - develop_build_release_for_centos8 + - release_build_release_for_centos8 tags: - - share + - share -branch_build_debug: +branch_build_debug_for_centos7: stage: build - extends: .build_by_travis + extends: .build_by_travis_for_centos7 variables: BUILD_TYPE: Debug CAPTURE_MODE: MARSIO @@ -99,13 +186,13 @@ branch_build_debug: - /^master.*$/i - tags -branch_build_release: +branch_build_release_for_centos7: stage: build variables: BUILD_TYPE: RelWithDebInfo CAPTURE_MODE: MARSIO PLATFORM_MODE: INLINE - extends: .build_by_travis + extends: .build_by_travis_for_centos7 artifacts: paths: - build/src/entry/sapp @@ -116,9 +203,9 @@ branch_build_release: - /^master.*$/i - tags -develop_build_debug: +develop_build_debug_for_centos7: stage: build - extends: .build_by_travis + extends: .build_by_travis_for_centos7 variables: BUILD_TYPE: Debug CAPTURE_MODE: MARSIO @@ -140,9 +227,9 @@ develop_build_debug: - /^rel*.*$/i - /^master.*$/i -develop_build_release: +develop_build_release_for_centos7: stage: build - extends: .build_by_travis + extends: .build_by_travis_for_centos7 variables: BUILD_TYPE: RelWithDebInfo CAPTURE_MODE: MARSIO @@ -164,8 +251,7 @@ develop_build_release: - /^rel*.*$/i - /^master.*$/i - -release_build_release: +release_build_release_for_centos7: stage: build variables: BUILD_TYPE: RelWithDebInfo @@ -175,7 +261,7 @@ release_build_release: UPLOAD: 1 PULP3_REPO_NAME: platform-stable-x86_64.el7 PULP3_DIST_NAME: platform-stable-x86_64.el7 - extends: .build_by_travis + extends: .build_by_travis_for_centos7 artifacts: name: "sapp-$CI_COMMIT_REF_NAME-release" paths: @@ -184,44 +270,143 @@ release_build_release: - build/*.rpm only: - tags - + +branch_build_debug_for_centos8: + stage: build + extends: .build_by_travis_for_centos8 + variables: + BUILD_TYPE: Debug + CAPTURE_MODE: MARSIO + PLATFORM_MODE: INLINE + artifacts: + paths: + - build/src/entry/sapp + - build/test/libsapp_devel.so + except: + - /^dev*.*$/i + - /^rel*.*$/i + - /^master.*$/i + - tags + +branch_build_release_for_centos8: + stage: build + variables: + BUILD_TYPE: RelWithDebInfo + CAPTURE_MODE: MARSIO + PLATFORM_MODE: INLINE + extends: .build_by_travis_for_centos8 + artifacts: + paths: + - build/src/entry/sapp + - build/test/libsapp_devel.so + except: + - /^dev*.*$/i + - /^rel*.*$/i + - /^master.*$/i + - tags + +develop_build_debug_for_centos8: + stage: build + extends: .build_by_travis_for_centos8 + variables: + BUILD_TYPE: Debug + CAPTURE_MODE: MARSIO + PLATFORM_MODE: INLINE + PACKAGE: 1 + UPLOAD: 1 + ASAN_OPTION: "OFF" + TESTING_VERSION_BUILD: 1 + PULP3_REPO_NAME: platform-testing-x86_64.el8 + PULP3_DIST_NAME: platform-testing-x86_64.el8 + artifacts: + name: "sapp-$CI_COMMIT_REF_NAME-debug" + paths: + - build/src/entry/sapp + - build/test/libsapp_devel.so + - build/*.rpm + only: + - /^dev*.*$/i + - /^rel*.*$/i + - /^master.*$/i + +develop_build_release_for_centos8: + stage: build + extends: .build_by_travis_for_centos8 + variables: + BUILD_TYPE: RelWithDebInfo + CAPTURE_MODE: MARSIO + PLATFORM_MODE: INLINE + PACKAGE: 1 + UPLOAD: 1 + ASAN_OPTION: "OFF" + TESTING_VERSION_BUILD: 1 + PULP3_REPO_NAME: platform-testing-x86_64.el8 + PULP3_DIST_NAME: platform-testing-x86_64.el8 + artifacts: + name: "sapp-$CI_COMMIT_REF_NAME-release" + paths: + - build/src/entry/sapp + - build/test/libsapp_devel.so + - build/*.rpm + only: + - /^dev*.*$/i + - /^rel*.*$/i + - /^master.*$/i + +release_build_release_for_centos8: + stage: build + variables: + BUILD_TYPE: RelWithDebInfo + CAPTURE_MODE: MARSIO + PLATFORM_MODE: INLINE + PACKAGE: 1 + UPLOAD: 1 + PULP3_REPO_NAME: platform-stable-x86_64.el8 + PULP3_DIST_NAME: platform-stable-x86_64.el8 + extends: .build_by_travis_for_centos7 + artifacts: + name: "sapp-$CI_COMMIT_REF_NAME-release" + paths: + - build/src/entry/sapp + - build/test/libsapp_devel.so + - build/*.rpm + only: + - tags + +############################################################################### +# envelope and upload +############################################################################### + envelope_rpm: stage: envelope + image: $BUILD_IMAGE_CENTOS7 variables: FEATURE_ID: 100 APP_NAME_IN_RPM_SPEC: sapp script: - - export RPM_FULL_PATH=`ls $CI_PROJECT_DIR/build/*.rpm | grep -v debug | grep -v debuginfo | grep -v devel | head -n 1` - - export | grep RPM_FULL_PATH - - ls $RPM_FULL_PATH - - export BIN_TO_PROTECT_IN_RPM="${INSTALL_PREFIX}/sapp" - - export | grep BIN_TO_PROTECT_IN_RPM - - rpm -qlp --provides $CI_PROJECT_DIR/build/*.rpm | grep "=" - - /root/rebuildrpm_and_envelope.sh $RPM_FULL_PATH $BIN_TO_PROTECT_IN_RPM $FEATURE_ID $APP_NAME_IN_RPM_SPEC - tags: - - envelope + - chmod +x ./ci/envelope_rpm.sh + - ./ci/envelope_rpm.sh artifacts: name: "sapp-pr-$CI_COMMIT_REF_NAME-release" paths: - - build/src/entry/sapp - - build/test/libsapp_devel.so - build/*-pr-*.rpm + tags: + - envelope only: - tags - -upload_envelope_rpm: + +upload_enveloped_rpm: stage: upload + image: $BUILD_IMAGE_CENTOS7 variables: - PULP3_REPO_NAME: platform-stable-x86_64.el7 - PULP3_DIST_NAME: platform-stable-x86_64.el7 + PULP3_REPO_NAME_EL7: platform-stable-x86_64.el7 + PULP3_DIST_NAME_EL7: platform-stable-x86_64.el7 + PULP3_REPO_NAME_EL8: platform-stable-x86_64.el8 + PULP3_DIST_NAME_EL8: platform-stable-x86_64.el8 script: - - cd $CI_PROJECT_DIR/build/ - - ls -ahl *.rpm - - cp ~/rpm_upload_tools.py ./ - - python3 rpm_upload_tools.py ${PULP3_REPO_NAME} ${PULP3_DIST_NAME} *-pr-*.rpm - - rm -rf *.rpm + - chmod +x ./ci/upload_enveloped_rpm.sh + - ./ci/upload_enveloped_rpm.sh tags: - share only: - tags - diff --git a/ci/envelope_rpm.sh b/ci/envelope_rpm.sh new file mode 100644 index 0000000..24ffea4 --- /dev/null +++ b/ci/envelope_rpm.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env sh + +ls $CI_PROJECT_DIR/build/*.rpm + +BIN_TO_PROTECT_IN_RPM="${INSTALL_PREFIX}/sapp" +RPMS_FULL_PATH=`ls $CI_PROJECT_DIR/build/*.rpm | grep -v debug | grep -v devel` +echo "RPMS_TO_BE_ENVELOPE: " $RPMS_FULL_PATH + +for RPM in ${RPMS_FULL_PATH[@]} +do + echo "ENVELOPE: " $RPM + /root/rebuildrpm_and_envelope.sh $RPM $BIN_TO_PROTECT_IN_RPM $FEATURE_ID $APP_NAME_IN_RPM_SPEC +done
\ No newline at end of file diff --git a/ci/travis.sh b/ci/travis.sh index e5dcdc5..d1bb6d7 100644 --- a/ci/travis.sh +++ b/ci/travis.sh @@ -40,10 +40,13 @@ if [ -n "${INSTALL_DEPENDENCY_LIBRARY}" ]; then source /etc/profile.d/framework.sh fi -if [ $ASAN_OPTION ];then +if [ $ASAN_OPTION ] && [ -f "/opt/rh/devtoolset-7/enable" ] ;then source /opt/rh/devtoolset-7/enable fi +if [ -f "/usr/lib64/libnsl.so.1" ]; then + cd /usr/lib64/; ln -fs libnsl.so.1 libnsl.so; cd - +fi /usr/bin/xxd -v mkdir build || true diff --git a/ci/update-el8-repo.sh b/ci/update-el8-repo.sh new file mode 100644 index 0000000..9b124c3 --- /dev/null +++ b/ci/update-el8-repo.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +rpm -e epel-release + +yum install epel-release -y +dnf info epel-release +dnf install 'dnf-command(config-manager)' -y +dnf config-manager --set-enabled PowerTools +dnf update --skip-broken --nobest -y +dnf repolist +dnf --disablerepo="*" --enablerepo="epel" install libunwind -y +dnf install gperftools -y
\ No newline at end of file diff --git a/ci/upload_enveloped_rpm.sh b/ci/upload_enveloped_rpm.sh new file mode 100644 index 0000000..dd10318 --- /dev/null +++ b/ci/upload_enveloped_rpm.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env sh + +cd $CI_PROJECT_DIR/build/ +cp ~/rpm_upload_tools.py ./ + +ls -ahl *.rpm + +RPM_IS_EL7=`ls -ahl *-pr-*.rpm | grep el7 | wc -l` +RPM_IS_EL8=`ls -ahl *-pr-*.rpm | grep el8 | wc -l` + +if [ $RPM_IS_EL7 -eq 1 ] +then + echo "====== Upload the packed RPM package for CentOS7 ======" + python3 rpm_upload_tools.py ${PULP3_REPO_NAME_EL7} ${PULP3_DIST_NAME_EL7} *-pr-*el7*.rpm +fi + +if [ $RPM_IS_EL8 -eq 1 ] +then + echo "====== Upload the packed RPM package for CentOS8 ======" + python3 rpm_upload_tools.py ${PULP3_REPO_NAME_EL8} ${PULP3_DIST_NAME_EL8} *-pr-*el8*.rpm +fi + +rm -rf *.rpm
\ No newline at end of file diff --git a/cmake/Package.cmake b/cmake/Package.cmake index bef2c06..462b170 100644 --- a/cmake/Package.cmake +++ b/cmake/Package.cmake @@ -36,8 +36,6 @@ set(CPACK_COMPONENT_HEADER_DISPLAY_NAME "develop") set(CPACK_COMPONENT_EXECUTABLE_REQUIRED TRUE) set(CPACK_RPM_EXECUTABLE_PACKAGE_NAME ${MY_RPM_NAME_PREFIX}) -#set(CPACK_RPM_EXECUTABLE_FILE_NAME "${CPACK_RPM_EXECUTABLE_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${SYSTEM_VERSION}.rpm") -#set(CPACK_RPM_EXECUTABLE_DEBUGINFO_FILE_NAME "${CPACK_RPM_EXECUTABLE_PACKAGE_NAME}-debuginfo-${CPACK_PACKAGE_VERSION}-${SYSTEM_VERSION}.rpm") set(CPACK_COMPONENT_EXECUTABLE_GROUP "executable") set(CPACK_COMPONENT_LIBRARY_GROUP "executable") @@ -45,8 +43,6 @@ set(CPACK_COMPONENT_PROFILE_GROUP "executable") set(CPACK_COMPONENT_HEADER_REQUIRED TRUE) set(CPACK_RPM_HEADER_PACKAGE_NAME "${MY_RPM_NAME_PREFIX}-devel") -#set(CPACK_RPM_HEADER_FILE_NAME "${CPACK_RPM_HEADER_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${SYSTEM_VERSION}.rpm") -#set(CPACK_RPM_HEADER_DEBUGINFO_FILE_NAME "${CPACK_RPM_HEADER_PACKAGE_NAME}-debuginfo-${CPACK_PACKAGE_VERSION}-${SYSTEM_VERSION}.rpm") set(CPACK_COMPONENT_HEADER_GROUP "header") set(CPACK_RPM_HEADER_PACKAGE_REQUIRES_PRE ${CPACK_RPM_LIBRARY_PACKAGE_NAME}) |
