summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author刘学利 <[email protected]>2022-03-15 09:58:49 +0000
committer刘学利 <[email protected]>2022-03-15 09:58:49 +0000
commit7929f35a25f64f497bfecd1a3c6e6e81df9a9fe3 (patch)
tree8e92d48089b93742c4e17fcf95f76b366ecc655f
parent9821e5fa23956d5aae13171aac9cede027345fd3 (diff)
TSG-9938: 适配rocky linux8.5v4.2.81
-rw-r--r--.gitlab-ci.yml283
-rw-r--r--ci/envelope_rpm.sh13
-rw-r--r--ci/travis.sh5
-rw-r--r--ci/update-el8-repo.sh12
-rw-r--r--ci/upload_enveloped_rpm.sh23
-rw-r--r--cmake/Package.cmake4
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})