summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryangwei <[email protected]>2023-11-10 16:14:34 +0800
committeryangwei <[email protected]>2023-11-10 16:34:04 +0800
commitc531caa1cf56605242da3365fef07935c64bf2b7 (patch)
tree31837e2f1f5501645e057c7d007db58f27b5c72e
parent2b47c81e973920245e1f21acbe0d35111e5acbe1 (diff)
🐎 ci(add gitlab ci): init add gitlab-ci.yml
-rw-r--r--.gitlab-ci.yml213
-rw-r--r--ci/travis.sh16
-rw-r--r--cmake/Package.cmake4
3 files changed, 215 insertions, 18 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..2c55cb1
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,213 @@
+variables:
+ GIT_STRATEGY: "clone"
+ BUILD_PADDING_PREFIX: /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX/
+ BUILD_IMAGE_CENTOS7: "git.mesalab.cn:7443/mesa_platform/build-env:centos7-for-sapp"
+ BUILD_IMAGE_CENTOS8: "git.mesalab.cn:7443/mesa_platform/build-env:rocky8-for-sapp"
+ INSTALL_DEPENDENCY_LIBRARY:
+ libMESA_htable-devel libMESA_handle_logger-devel libMESA_prof_load-devel libMESA_field_stat2-devel
+ sapp sapp-devel libcjson-devel libbreakpad_mini-devel libMESA_htable-devel libMESA_jump_layer framework_env libasan
+ SYMBOL_TARGET: stellar-c
+ TEST_NAME: gtest_stellar-c
+ INSTALL_PREFIX: "/opt/tsg/"
+
+stages:
+- cppcheck
+- build
+#- test
+- upload
+
+.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
+ - chmod +x ./ci/travis.sh
+ - yum makecache --disablerepo="*" --enablerepo="framework,platform"
+ - yum install -y $INSTALL_DEPENDENCY_LIBRARY
+ - source /etc/profile.d/framework.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
+ --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
+ tags:
+ - share
+
+run_cppcheck_for_centos7:
+ extends: .cppcheck_script
+ image: $BUILD_IMAGE_CENTOS7
+
+run_cppcheck_for_centos8:
+ extends: .cppcheck_script
+ image: $BUILD_IMAGE_CENTOS8
+
+###############################################################################
+# build
+###############################################################################
+
+.build_before_script:
+ before_script: *everything_before_script
+ script:
+ - ./ci/travis.sh
+ variables:
+ BUILD_TEST: "ON"
+ BUILD_TYPE: Debug
+ tags:
+ - share
+
+.build_by_travis_for_centos7:
+ extends: .build_before_script
+ stage: build
+ image: $BUILD_IMAGE_CENTOS7
+
+
+develop_build_for_centos7:
+ extends: .build_by_travis_for_centos7
+ variables:
+ BUILD_TYPE: RelWithDebInfo
+ artifacts:
+ name: "$SYMBOL_TARGET-$CI_COMMIT_REF_NAME-debug"
+ paths:
+ - build/*
+ except:
+ - tags
+
+release_build_debug_for_centos7:
+ extends: .build_by_travis_for_centos7
+ variables:
+ BUILD_TYPE: Debug
+ PACKAGE: 1
+ ASAN_OPTION: "ADDRESS"
+ script:
+ - source /opt/rh/devtoolset-7/enable || true
+ - ./ci/travis.sh
+ artifacts:
+ name: "$SYMBOL_TARGET-$CI_COMMIT_REF_NAME-release"
+ paths:
+ - build/*
+ only:
+ - tags
+
+release_build_for_centos7:
+ extends: .build_by_travis_for_centos7
+ variables:
+ BUILD_TYPE: RelWithDebInfo
+ PACKAGE: 1
+ artifacts:
+ name: "$SYMBOL_TARGET-$CI_COMMIT_REF_NAME-release"
+ paths:
+ - build/*
+ only:
+ - tags
+
+.build_by_travis_for_centos8:
+ stage: build
+ image: $BUILD_IMAGE_CENTOS8
+ extends: .build_before_script
+
+develop_build_for_centos8:
+ extends: .build_by_travis_for_centos8
+ variables:
+ BUILD_TYPE: RelWithDebInfo
+ artifacts:
+ name: "$SYMBOL_TARGET-$CI_COMMIT_REF_NAME-debug"
+ paths:
+ - build/*
+ except:
+ - tags
+
+release_build_debug_for_centos8:
+ extends: .build_by_travis_for_centos8
+ variables:
+ BUILD_TYPE: Debug
+ PACKAGE: 1
+ ASAN_OPTION: "ADDRESS"
+ artifacts:
+ name: "$SYMBOL_TARGET-$CI_COMMIT_REF_NAME-release"
+ paths:
+ - build/*
+ only:
+ - tags
+
+release_build_for_centos8:
+ extends: .build_by_travis_for_centos8
+ variables:
+ BUILD_TYPE: RelWithDebInfo
+ PACKAGE: 1
+ artifacts:
+ name: "$SYMBOL_TARGET-$CI_COMMIT_REF_NAME-release"
+ paths:
+ - build/*
+ only:
+ - tags
+
+###############################################################################
+# test
+###############################################################################
+
+
+###############################################################################
+# upload
+###############################################################################
+.define_before_upload_centos7:
+ stage: upload
+ image: $BUILD_IMAGE_CENTOS7
+ before_script:
+ - pwd; ls -l ; cd build ; ls -l
+ - cp /root/rpm_upload_tools.py ./
+ variables:
+ PULP3_REPO_NAME: stellar-stable-x86_64.el7
+ PULP3_DIST_NAME: stellar-stable-x86_64.el7
+ only:
+ - tags
+ tags:
+ - share
+
+rpm_upload_for_centos7:
+ extends: .define_before_upload_centos7
+ dependencies:
+ - release_build_debug_for_centos7
+ - release_build_for_centos7
+ script:
+ - python3 rpm_upload_tools.py $PULP3_REPO_NAME $PULP3_DIST_NAME *.rpm
+
+.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_debug_for_centos8
+ - release_build_for_centos8
+ script:
+ - python3 rpm_upload_tools.py $PULP3_REPO_NAME $PULP3_DIST_NAME *.rpm
diff --git a/ci/travis.sh b/ci/travis.sh
index 5c94ef8..a398d5d 100644
--- a/ci/travis.sh
+++ b/ci/travis.sh
@@ -1,9 +1,6 @@
#!/usr/bin/env sh
set -evx
-chmod +x ci/prepare_gtest_network.sh
-. ci/prepare_gtest_network.sh
-
chmod +x ci/get-nprocessors.sh
. ci/get-nprocessors.sh
@@ -35,9 +32,6 @@ env | sort
: "${NO_RTTI:=OFF}"
: "${COMPILER_IS_GNUCXX:=OFF}"
-# Install dependency from YUM
-yum install -y libpcap-devel mrzcpd
-
if [ $ASAN_OPTION ]; then
source /opt/rh/devtoolset-7/enable
fi
@@ -53,17 +47,7 @@ cmake3 -DCMAKE_CXX_FLAGS=$CXX_FLAGS \
..
make
-make test
if [ -n "${PACKAGE}" ]; then
make package
- cp ~/rpm_upload_tools.py ./
- python3 rpm_upload_tools.py ${PULP3_REPO_NAME} ${PULP3_DIST_NAME} *.rpm
-fi
-
-if [ -n "${UPLOAD_SYMBOL_FILES}" ]; then
- rpm -i stellar*debuginfo*.rpm
- ls -ahl /usr/lib/debug/opt/tsg/stellar/bin/
- 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 \ No newline at end of file
diff --git a/cmake/Package.cmake b/cmake/Package.cmake
index a409f72..b6265e3 100644
--- a/cmake/Package.cmake
+++ b/cmake/Package.cmake
@@ -27,9 +27,9 @@ set(CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/cmake/PreUninstall.i
# Must uninstall the debug package before install release package
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
- set(CPACK_RPM_PACKAGE_CONFLICTS "stellar")
+ set(CPACK_RPM_PACKAGE_CONFLICTS ${PROJECT_NAME})
else()
- set(CPACK_RPM_PACKAGE_CONFLICTS "stellar-debug")
+ set(CPACK_RPM_PACKAGE_CONFLICTS "${PROJECT_NAME}-debug")
endif()
# Setup %config(noreplace)