🐎 ci(stage upgrade): split to 4 stage

This commit is contained in:
yangwei
2024-08-07 14:04:07 +08:00
committed by luwenpeng
parent 6bb5c44ee3
commit 90ca08568e
8 changed files with 128 additions and 99 deletions

View File

@@ -2,21 +2,70 @@ variables:
GIT_STRATEGY: "clone" GIT_STRATEGY: "clone"
BUILD_PADDING_PREFIX: /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX/ BUILD_PADDING_PREFIX: /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX/
INSTALL_PREFIX: "/opt/tsg/stellar" INSTALL_PREFIX: "/opt/tsg/stellar"
INSTALL_DEPENDENCY_LIBRARY: mrzcpd-corei7 framework_env libfieldstat4-devel
TESTING_VERSION_BUILD: 0 TESTING_VERSION_BUILD: 0
BUILD_IMAGE_CENTOS8: "git.mesalab.cn:7443/mesa_platform/build-env:rockylinux" BUILD_IMAGE_CENTOS8: "git.mesalab.cn:7443/mesa_platform/build-env:rocky8-for-stellar"
stages: stages:
- cppcheck
- build - build
- test
- upload
.build_by_travis_for_centos8: .everything_before_script: &everything_before_script
image: $BUILD_IMAGE_CENTOS8
before_script:
- mkdir -p $BUILD_PADDING_PREFIX/$CI_PROJECT_NAMESPACE/ - mkdir -p $BUILD_PADDING_PREFIX/$CI_PROJECT_NAMESPACE/
- ln -s $CI_PROJECT_DIR $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH - ln -s $CI_PROJECT_DIR $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH
- cd $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH - cd $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH
- yum makecache --disablerepo="*" --enablerepo="framework,platform"
- yum install -y $INSTALL_DEPENDENCY_LIBRARY
- source /etc/profile.d/mrzcpd.sh
- source /etc/profile.d/framework.sh
- chmod +x ./ci/travis.sh - chmod +x ./ci/travis.sh
###############################################################################
# cppcheck
###############################################################################
.cppcheck_script:
variables:
BUILD_TYPE: Debug
stage: cppcheck
script:
- mkdir build; cd build; cmake3 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
- >
cppcheck --project=compile_commands.json
--enable=all
--std=c++11
--error-exitcode=1
--suppress=unusedFunction
--suppress=missingInclude
--suppress=uselessAssignmentPtrArg
--suppress=unmatchedSuppression
--suppress=variableScope
--suppress=unreadVariable
--suppress=cstyleCast
--suppress=memleakOnRealloc
--suppress=constParameter
--suppress=uselessAssignmentArg
--suppress=uninitvar
--suppress=unusedStructMember
--suppress=funcArgOrderDifferent
--suppress=unreachableCode
--suppress=internalAstError
tags:
- share
run_cppcheck_for_centos8:
extends: .cppcheck_script
image: $BUILD_IMAGE_CENTOS8
###############################################################################
# build
###############################################################################
.build_by_travis_for_centos8:
image: $BUILD_IMAGE_CENTOS8
before_script: *everything_before_script
script: script:
- yum makecache
- ./ci/travis.sh - ./ci/travis.sh
tags: tags:
- share - share
@@ -36,6 +85,10 @@ branch_build_release_for_centos8:
variables: variables:
BUILD_TYPE: RelWithDebInfo BUILD_TYPE: RelWithDebInfo
extends: .build_by_travis_for_centos8 extends: .build_by_travis_for_centos8
artifacts:
name: "stellar-branch-$CI_COMMIT_REF_NAME-release"
paths:
- build/*
except: except:
- /^develop-.*$/i - /^develop-.*$/i
- /^release-.*$/i - /^release-.*$/i
@@ -46,16 +99,8 @@ develop_build_debug_for_centos8:
extends: .build_by_travis_for_centos8 extends: .build_by_travis_for_centos8
variables: variables:
TESTING_VERSION_BUILD: 1 TESTING_VERSION_BUILD: 1
#UPLOAD_SYMBOL_FILES: 1
BUILD_TYPE: Debug BUILD_TYPE: Debug
#ASAN_OPTION: ADDRESS #ASAN_OPTION: ADDRESS
PACKAGE: 1
PULP3_REPO_NAME: stellar-stable-x86_64.el8
PULP3_DIST_NAME: stellar-stable-x86_64.el8
artifacts:
name: "stellar-develop-$CI_COMMIT_REF_NAME-debug"
paths:
- build/*.rpm
only: only:
- /^develop-.*$/i - /^develop-.*$/i
- /^release-.*$/i - /^release-.*$/i
@@ -65,16 +110,12 @@ develop_build_release_for_centos8:
extends: .build_by_travis_for_centos8 extends: .build_by_travis_for_centos8
variables: variables:
TESTING_VERSION_BUILD: 1 TESTING_VERSION_BUILD: 1
#UPLOAD_SYMBOL_FILES: 1
#ASAN_OPTION: ADDRESS #ASAN_OPTION: ADDRESS
BUILD_TYPE: RelWithDebInfo BUILD_TYPE: RelWithDebInfo
PACKAGE: 1
PULP3_REPO_NAME: stellar-stable-x86_64.el8
PULP3_DIST_NAME: stellar-stable-x86_64.el8
artifacts: artifacts:
name: "stellar-develop-$CI_COMMIT_REF_NAME-release" name: "stellar-develop-$CI_COMMIT_REF_NAME-release"
paths: paths:
- build/*.rpm - build/*
only: only:
- /^develop-.*$/i - /^develop-.*$/i
- /^release-.*$/i - /^release-.*$/i
@@ -82,16 +123,8 @@ develop_build_release_for_centos8:
release_build_debug_for_centos8: release_build_debug_for_centos8:
stage: build stage: build
variables: variables:
#UPLOAD_SYMBOL_FILES: 1
BUILD_TYPE: Debug BUILD_TYPE: Debug
PACKAGE: 1
PULP3_REPO_NAME: tsg-stable-x86_64.el8
PULP3_DIST_NAME: tsg-stable-x86_64.el8
extends: .build_by_travis_for_centos8 extends: .build_by_travis_for_centos8
artifacts:
name: "stellar-install-$CI_COMMIT_REF_NAME-debug"
paths:
- build/*.rpm
only: only:
- tags - tags
@@ -99,14 +132,51 @@ release_build_release_for_centos8:
stage: build stage: build
variables: variables:
BUILD_TYPE: RelWithDebInfo BUILD_TYPE: RelWithDebInfo
#UPLOAD_SYMBOL_FILES: 1
PACKAGE: 1
PULP3_REPO_NAME: tsg-stable-x86_64.el8
PULP3_DIST_NAME: tsg-stable-x86_64.el8
extends: .build_by_travis_for_centos8 extends: .build_by_travis_for_centos8
artifacts: artifacts:
name: "stellar-install-$CI_COMMIT_REF_NAME-release" name: "stellar-install-$CI_COMMIT_REF_NAME-release"
paths: paths:
- build/*.rpm - build/*
only: only:
- tags - tags
###############################################################################
# test
###############################################################################
test_in_centos8:
stage: test
image: $BUILD_IMAGE_CENTOS8
allow_failure: false
script:
- *everything_before_script
- cd build; ctest -V
dependencies:
- branch_build_release_for_centos8
- develop_build_release_for_centos8
- release_build_release_for_centos8
tags:
- share
###############################################################################
# upload
###############################################################################
.define_before_upload_centos8:
stage: upload
image: $BUILD_IMAGE_CENTOS8
before_script:
- pwd; ls -l ; cd build ; ls -l
- cp /root/rpm_upload_tools.py ./
variables:
PULP3_REPO_NAME: stellar-stable-x86_64.el8
PULP3_DIST_NAME: stellar-stable-x86_64.el8
only:
- tags
tags:
- share
rpm_upload_for_centos8:
extends: .define_before_upload_centos8
dependencies:
- release_build_release_for_centos8
script:
- python3 rpm_upload_tools.py $PULP3_REPO_NAME $PULP3_DIST_NAME *.rpm

View File

@@ -39,16 +39,9 @@ if (CMAKE_CXX_CPPCHECK)
"--suppress=uselessAssignmentArg" "--suppress=uselessAssignmentArg"
"--suppress=uninitvar" "--suppress=uninitvar"
"--suppress=unusedStructMember" "--suppress=unusedStructMember"
"--suppress=funcArgOrderDifferent"
"--suppress=unreachableCode" "--suppress=unreachableCode"
"--suppress=internalAstError" "--suppress=internalAstError"
"--suppress=nullPointerRedundantCheck"
"--suppress=ctunullpointer"
"--suppress=redundantAssignment"
"--suppress=duplicateValueTernary"
"--suppress=funcArgOrderDifferent"
"--suppress=*:${PROJECT_SOURCE_DIR}/vendors/*"
"--suppress=*:${PROJECT_SOURCE_DIR}/deps/toml/*"
"--suppress=*:${PROJECT_SOURCE_DIR}/deps/rbtree/*"
) )
set(CMAKE_C_CPPCHECK ${CMAKE_CXX_CPPCHECK}) set(CMAKE_C_CPPCHECK ${CMAKE_CXX_CPPCHECK})
else() else()

View File

@@ -32,21 +32,6 @@ env | sort
: "${NO_RTTI:=OFF}" : "${NO_RTTI:=OFF}"
: "${COMPILER_IS_GNUCXX:=OFF}" : "${COMPILER_IS_GNUCXX:=OFF}"
# Install dependency from YUM
yum install -y mrzcpd-corei7
yum install -y numactl-libs # required by mrzcpd
yum install -y libibverbs # required by mrzcpd
yum install -y libfieldstat4-devel
yum install -y tcpdump
dnf install -y epel-release
dnf install -y wireshark wireshark-cli
dnf install -y libpcap-devel
dnf install -y jq
if [ $ASAN_OPTION ] && [ -f "/opt/rh/devtoolset-7/enable" ]; then
source /opt/rh/devtoolset-7/enable
fi
mkdir build || true mkdir build || true
cd build cd build
@@ -56,17 +41,11 @@ cmake3 -DCMAKE_CXX_FLAGS=$CXX_FLAGS \
-DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \ -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \
-DVERSION_DAILY_BUILD=$TESTING_VERSION_BUILD \ -DVERSION_DAILY_BUILD=$TESTING_VERSION_BUILD \
.. ..
make -j 4
ctest --output-on-failure make -j $NPROCESSORS
if [ -n "${PACKAGE}" ]; then if [ -n "${PACKAGE}" ]; then
make package make package
cp ~/rpm_upload_tools.py ./ cp ~/rpm_upload_tools.py ./
python3 rpm_upload_tools.py ${PULP3_REPO_NAME} ${PULP3_DIST_NAME} *.rpm python3 rpm_upload_tools.py ${PULP3_REPO_NAME} ${PULP3_DIST_NAME} *.rpm
fi fi
if [ -n "${UPLOAD_SYMBOL_FILES}" ]; then
rpm -i stellar*debuginfo*.rpm
cp /usr/lib/debug/opt/tsg/stellar/bin/stellar*debug /tmp/stellar.debuginfo.${CI_COMMIT_SHORT_SHA}
sentry-cli upload-dif -t elf /tmp/stellar.debuginfo.${CI_COMMIT_SHORT_SHA}
fi

View File

@@ -342,7 +342,7 @@ rb_find_first(const void *key, const struct rb_root *tree,
match = node; match = node;
node = node->rb_left; node = node->rb_left;
} }
else if (c > 0) else
{ {
node = node->rb_right; node = node->rb_right;
} }

40
deps/toml/toml.cpp vendored
View File

@@ -2502,32 +2502,32 @@ int toml_rtos(toml_raw_t src, char **ret)
toml_datum_t toml_string_at(const toml_array_t *arr, int idx) toml_datum_t toml_string_at(const toml_array_t *arr, int idx)
{ {
toml_datum_t ret; toml_datum_t ret={};
memset(&ret, 0, sizeof(ret)); //memset(&ret, 0, sizeof(ret));
ret.ok = (0 == toml_rtos(toml_raw_at(arr, idx), &ret.u.s)); ret.ok = (0 == toml_rtos(toml_raw_at(arr, idx), &ret.u.s));
return ret; return ret;
} }
toml_datum_t toml_bool_at(const toml_array_t *arr, int idx) toml_datum_t toml_bool_at(const toml_array_t *arr, int idx)
{ {
toml_datum_t ret; toml_datum_t ret={};
memset(&ret, 0, sizeof(ret)); //memset(&ret, 0, sizeof(ret));
ret.ok = (0 == toml_rtob(toml_raw_at(arr, idx), &ret.u.b)); ret.ok = (0 == toml_rtob(toml_raw_at(arr, idx), &ret.u.b));
return ret; return ret;
} }
toml_datum_t toml_int_at(const toml_array_t *arr, int idx) toml_datum_t toml_int_at(const toml_array_t *arr, int idx)
{ {
toml_datum_t ret; toml_datum_t ret={};
memset(&ret, 0, sizeof(ret)); //memset(&ret, 0, sizeof(ret));
ret.ok = (0 == toml_rtoi(toml_raw_at(arr, idx), &ret.u.i)); ret.ok = (0 == toml_rtoi(toml_raw_at(arr, idx), &ret.u.i));
return ret; return ret;
} }
toml_datum_t toml_double_at(const toml_array_t *arr, int idx) toml_datum_t toml_double_at(const toml_array_t *arr, int idx)
{ {
toml_datum_t ret; toml_datum_t ret={};
memset(&ret, 0, sizeof(ret)); //memset(&ret, 0, sizeof(ret));
ret.ok = (0 == toml_rtod(toml_raw_at(arr, idx), &ret.u.d)); ret.ok = (0 == toml_rtod(toml_raw_at(arr, idx), &ret.u.d));
return ret; return ret;
} }
@@ -2535,8 +2535,8 @@ toml_datum_t toml_double_at(const toml_array_t *arr, int idx)
toml_datum_t toml_timestamp_at(const toml_array_t *arr, int idx) toml_datum_t toml_timestamp_at(const toml_array_t *arr, int idx)
{ {
toml_timestamp_t ts; toml_timestamp_t ts;
toml_datum_t ret; toml_datum_t ret={};
memset(&ret, 0, sizeof(ret)); //memset(&ret, 0, sizeof(ret));
ret.ok = (0 == toml_rtots(toml_raw_at(arr, idx), &ts)); ret.ok = (0 == toml_rtots(toml_raw_at(arr, idx), &ts));
if (ret.ok) if (ret.ok)
{ {
@@ -2567,8 +2567,8 @@ toml_datum_t toml_timestamp_at(const toml_array_t *arr, int idx)
toml_datum_t toml_string_in(const toml_table_t *arr, const char *key) toml_datum_t toml_string_in(const toml_table_t *arr, const char *key)
{ {
toml_datum_t ret; toml_datum_t ret={};
memset(&ret, 0, sizeof(ret)); //memset(&ret, 0, sizeof(ret));
toml_raw_t raw = toml_raw_in(arr, key); toml_raw_t raw = toml_raw_in(arr, key);
if (raw) if (raw)
{ {
@@ -2579,24 +2579,24 @@ toml_datum_t toml_string_in(const toml_table_t *arr, const char *key)
toml_datum_t toml_bool_in(const toml_table_t *arr, const char *key) toml_datum_t toml_bool_in(const toml_table_t *arr, const char *key)
{ {
toml_datum_t ret; toml_datum_t ret={};
memset(&ret, 0, sizeof(ret)); //memset(&ret, 0, sizeof(ret));
ret.ok = (0 == toml_rtob(toml_raw_in(arr, key), &ret.u.b)); ret.ok = (0 == toml_rtob(toml_raw_in(arr, key), &ret.u.b));
return ret; return ret;
} }
toml_datum_t toml_int_in(const toml_table_t *arr, const char *key) toml_datum_t toml_int_in(const toml_table_t *arr, const char *key)
{ {
toml_datum_t ret; toml_datum_t ret={};
memset(&ret, 0, sizeof(ret)); //memset(&ret, 0, sizeof(ret));
ret.ok = (0 == toml_rtoi(toml_raw_in(arr, key), &ret.u.i)); ret.ok = (0 == toml_rtoi(toml_raw_in(arr, key), &ret.u.i));
return ret; return ret;
} }
toml_datum_t toml_double_in(const toml_table_t *arr, const char *key) toml_datum_t toml_double_in(const toml_table_t *arr, const char *key)
{ {
toml_datum_t ret; toml_datum_t ret={};
memset(&ret, 0, sizeof(ret)); //memset(&ret, 0, sizeof(ret));
ret.ok = (0 == toml_rtod(toml_raw_in(arr, key), &ret.u.d)); ret.ok = (0 == toml_rtod(toml_raw_in(arr, key), &ret.u.d));
return ret; return ret;
} }
@@ -2604,8 +2604,8 @@ toml_datum_t toml_double_in(const toml_table_t *arr, const char *key)
toml_datum_t toml_timestamp_in(const toml_table_t *arr, const char *key) toml_datum_t toml_timestamp_in(const toml_table_t *arr, const char *key)
{ {
toml_timestamp_t ts; toml_timestamp_t ts;
toml_datum_t ret; toml_datum_t ret={};
memset(&ret, 0, sizeof(ret)); //memset(&ret, 0, sizeof(ret));
ret.ok = (0 == toml_rtots(toml_raw_in(arr, key), &ts)); ret.ok = (0 == toml_rtots(toml_raw_in(arr, key), &ts));
if (ret.ok) if (ret.ok)
{ {

View File

@@ -1,4 +1,4 @@
add_library(packet_io dumpfile_io.cpp marsio_io.cpp lock_free_queue.cpp packet_io.cpp) add_library(packet_io dumpfile_io.cpp marsio_io.cpp lock_free_queue.cpp packet_io.cpp)
target_include_directories(packet_io PUBLIC ${CMAKE_CURRENT_LIST_DIR}) target_include_directories(packet_io PUBLIC ${CMAKE_CURRENT_LIST_DIR})
target_include_directories(packet_io PUBLIC ${CMAKE_SOURCE_DIR}/src/stellar) target_include_directories(packet_io PUBLIC ${CMAKE_SOURCE_DIR}/src/stellar)
target_link_libraries(packet_io mrzcpd pcap packet) target_link_libraries(packet_io marsio pcap packet)

View File

@@ -166,7 +166,7 @@ void session_table_del(struct session_table *table, struct session *sess)
HASH_DELETE(hh1, table->root_tuple6, sess); HASH_DELETE(hh1, table->root_tuple6, sess);
HASH_DELETE(hh2, table->root_tuple4, sess); HASH_DELETE(hh2, table->root_tuple4, sess);
HASH_DELETE(hh3, table->root_sessid, sess); HASH_DELETE(hh3, table->root_sessid, sess);
if (table->free_cb && sess) if (table->free_cb)
{ {
table->free_cb(sess, table->arg); table->free_cb(sess, table->arg);
} }

13
vendor/CMakeLists.txt vendored
View File

@@ -23,16 +23,3 @@ add_library(gmock STATIC IMPORTED GLOBAL)
add_dependencies(gmock googletest) add_dependencies(gmock googletest)
set_property(TARGET gmock PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libgmock.a) set_property(TARGET gmock PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libgmock.a)
set_property(TARGET gmock PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) set_property(TARGET gmock PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include)
# MRZCPD
set(MRZCPD_LIB_DIR /opt/tsg/mrzcpd/corei7/lib)
set(MRZCPD_INCLUDE_DIR /opt/tsg/mrzcpd/corei7/include)
add_library(mrzcpd SHARED IMPORTED GLOBAL)
set_property(TARGET mrzcpd PROPERTY IMPORTED_LOCATION ${MRZCPD_LIB_DIR}/libmarsio.so)
set_property(TARGET mrzcpd PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${MRZCPD_INCLUDE_DIR})
# FIELDSTAT
add_library(fieldstat4 SHARED IMPORTED GLOBAL)
set_property(TARGET fieldstat4 PROPERTY IMPORTED_LOCATION /opt/MESA/lib/libfieldstat4.so)
set_property(TARGET fieldstat4 PROPERTY INTERFACE_INCLUDE_DIRECTORIES /opt/MESA/include)