summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluwenpeng <[email protected]>2022-02-09 17:17:42 +0800
committerluwenpeng <[email protected]>2022-03-07 10:47:09 +0800
commit65f7f3d085e9f31beeec37d5826633da23627415 (patch)
treeb42eedf6b8f851db387dda2a8ae77c87b355e8cc
parentaa252adf3bbc24c97c5bd7e3f5356fe3afb96648 (diff)
TSG-9550 TFE运行CI时同时构建CentOS7/CentOS8运行环境的安装包
-rw-r--r--.gitlab-ci.yml202
-rw-r--r--CMakeLists.txt2
-rw-r--r--ci/envelope_rpm.sh13
-rw-r--r--ci/travis.sh4
-rw-r--r--ci/upload_enveloped_rpm.sh23
5 files changed, 196 insertions, 48 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6d50724..3164145 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,30 +1,53 @@
-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: "/opt/tsg/tfe"
TESTING_VERSION_BUILD: 0
+ BUILD_IMAGE_CENTOS7: "git.mesalab.cn:7443/mesa_platform/build-env:master"
+ BUILD_IMAGE_CENTOS8: "git.mesalab.cn:7443/mesa_platform/build-env:rockylinux"
stages:
-- build
-- envelope
-- upload
+ - build
+ - envelope
+ - upload
-.build_by_travis:
+.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
+ - 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 makecache
- - ./ci/travis.sh
+ - yum install -y libmnl-devel
+ - yum install -y libnfnetlink-devel
+ - ./ci/travis.sh
tags:
- - share
+ - share
-branch_build_debug:
+.build_by_travis_for_centos8:
stage: build
- extends: .build_by_travis
+ image: $BUILD_IMAGE_CENTOS8
+ extends: .build_before_script
+ script:
+ - dnf --enablerepo=powertools install -y libmnl-devel
+ - dnf --enablerepo=powertools install -y libnfnetlink-devel
+ - ./ci/travis.sh
+ tags:
+ - share
+
+###############################################################################
+# compile use image: build-env:master
+###############################################################################
+
+branch_build_debug_for_centos7:
+ extends: .build_by_travis_for_centos7
variables:
BUILD_TYPE: Debug
except:
@@ -32,24 +55,22 @@ branch_build_debug:
- /^release-.*$/i
- tags
-branch_build_release:
- stage: build
+branch_build_release_for_centos7:
variables:
BUILD_TYPE: RelWithDebInfo
- extends: .build_by_travis
+ extends: .build_by_travis_for_centos7
except:
- /^develop-.*$/i
- /^release-.*$/i
- tags
-develop_build_debug:
- stage: build
- extends: .build_by_travis
+develop_build_debug_for_centos7:
+ extends: .build_by_travis_for_centos7
variables:
TESTING_VERSION_BUILD: 1
UPLOAD_SYMBOL_FILES: 1
BUILD_TYPE: Debug
- ASAN_OPTION: ADDRESS
+ # ASAN_OPTION: ADDRESS
PACKAGE: 1
PULP3_REPO_NAME: tfe-testing-x86_64.el7
PULP3_DIST_NAME: tfe-testing-x86_64.el7
@@ -61,13 +82,12 @@ develop_build_debug:
- /^develop-.*$/i
- /^release-.*$/i
-develop_build_release:
- stage: build
- extends: .build_by_travis
+develop_build_release_for_centos7:
+ extends: .build_by_travis_for_centos7
variables:
TESTING_VERSION_BUILD: 1
UPLOAD_SYMBOL_FILES: 1
- # ASAN_OPTION: ADDRESS
+ # ASAN_OPTION: ADDRESS
BUILD_TYPE: RelWithDebInfo
PACKAGE: 1
PULP3_REPO_NAME: tfe-testing-x86_64.el7
@@ -80,15 +100,14 @@ develop_build_release:
- /^develop-.*$/i
- /^release-.*$/i
-release_build_debug:
- stage: build
+release_build_debug_for_centos7:
variables:
UPLOAD_SYMBOL_FILES: 1
BUILD_TYPE: Debug
PACKAGE: 1
PULP3_REPO_NAME: tfe-stable-x86_64.el7
PULP3_DIST_NAME: tfe-stable-x86_64.el7
- extends: .build_by_travis
+ extends: .build_by_travis_for_centos7
artifacts:
name: "tfe-install-$CI_COMMIT_REF_NAME-debug"
paths:
@@ -96,15 +115,102 @@ release_build_debug:
only:
- tags
-release_build_release:
- stage: build
+release_build_release_for_centos7:
variables:
BUILD_TYPE: RelWithDebInfo
UPLOAD_SYMBOL_FILES: 1
PACKAGE: 1
PULP3_REPO_NAME: tfe-stable-x86_64.el7
PULP3_DIST_NAME: tfe-stable-x86_64.el7
- extends: .build_by_travis
+ extends: .build_by_travis_for_centos7
+ artifacts:
+ name: "tfe-install-$CI_COMMIT_REF_NAME-release"
+ paths:
+ - build/*.rpm
+ only:
+ - tags
+
+###############################################################################
+# compile use image: build-env:rockylinux
+###############################################################################
+
+branch_build_debug_for_centos8:
+ extends: .build_by_travis_for_centos8
+ variables:
+ BUILD_TYPE: Debug
+ except:
+ - /^develop-.*$/i
+ - /^release-.*$/i
+ - tags
+
+branch_build_release_for_centos8:
+ variables:
+ BUILD_TYPE: RelWithDebInfo
+ extends: .build_by_travis_for_centos8
+ except:
+ - /^develop-.*$/i
+ - /^release-.*$/i
+ - tags
+
+develop_build_debug_for_centos8:
+ extends: .build_by_travis_for_centos8
+ variables:
+ TESTING_VERSION_BUILD: 1
+ UPLOAD_SYMBOL_FILES: 1
+ BUILD_TYPE: Debug
+ # ASAN_OPTION: ADDRESS
+ PACKAGE: 1
+ PULP3_REPO_NAME: tfe-testing-x86_64.el8
+ PULP3_DIST_NAME: tfe-testing-x86_64.el8
+ artifacts:
+ name: "tfe-develop-$CI_COMMIT_REF_NAME-debug"
+ paths:
+ - build/*.rpm
+ only:
+ - /^develop-.*$/i
+ - /^release-.*$/i
+
+develop_build_release_for_centos8:
+ extends: .build_by_travis_for_centos8
+ variables:
+ TESTING_VERSION_BUILD: 1
+ UPLOAD_SYMBOL_FILES: 1
+ # ASAN_OPTION: ADDRESS
+ BUILD_TYPE: RelWithDebInfo
+ PACKAGE: 1
+ PULP3_REPO_NAME: tfe-testing-x86_64.el8
+ PULP3_DIST_NAME: tfe-testing-x86_64.el8
+ artifacts:
+ name: "tfe-develop-$CI_COMMIT_REF_NAME-release"
+ paths:
+ - build/*.rpm
+ only:
+ - /^develop-.*$/i
+ - /^release-.*$/i
+
+release_build_debug_for_centos8:
+ variables:
+ UPLOAD_SYMBOL_FILES: 1
+ BUILD_TYPE: Debug
+ PACKAGE: 1
+ PULP3_REPO_NAME: tfe-stable-x86_64.el8
+ PULP3_DIST_NAME: tfe-stable-x86_64.el8
+ extends: .build_by_travis_for_centos8
+ artifacts:
+ name: "tfe-install-$CI_COMMIT_REF_NAME-debug"
+ paths:
+ - build/*.rpm
+ only:
+ - tags
+
+release_build_release_for_centos8:
+ variables:
+ BUILD_TYPE: RelWithDebInfo
+ UPLOAD_SYMBOL_FILES: 1
+ PACKAGE: 1
+ PULP3_REPO_NAME: tfe-stable-x86_64.el8
+ PULP3_DIST_NAME: tfe-stable-x86_64.el8
+ extends: .build_by_travis_for_centos8
artifacts:
name: "tfe-install-$CI_COMMIT_REF_NAME-release"
paths:
@@ -112,36 +218,40 @@ release_build_release:
only:
- tags
+###############################################################################
+# envelope and upload
+###############################################################################
+
envelope_rpm:
stage: envelope
+ image: $BUILD_IMAGE_CENTOS7
variables:
FEATURE_ID: 100
APP_NAME_IN_RPM_SPEC: tfe
script:
- - export RPM_FULL_PATH=`ls $CI_PROJECT_DIR/build/*.rpm | grep -v debug | grep -v debuginfo | grep -v devel | head -n 1`
- - export BIN_TO_PROTECT_IN_RPM="${INSTALL_PREFIX}/bin/tfe"
- - /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: "tfe-pr-$CI_COMMIT_REF_NAME-release"
paths:
- build/*-pr-*.rpm
+ tags:
+ - envelope
only:
- tags
-
-upload_envelope_rpm:
+
+upload_enveloped_rpm:
stage: upload
+ image: $BUILD_IMAGE_CENTOS7
variables:
- PULP3_REPO_NAME: tfe-stable-x86_64.el7
- PULP3_DIST_NAME: tfe-stable-x86_64.el7
+ PULP3_REPO_NAME_EL7: tfe-stable-x86_64.el7
+ PULP3_DIST_NAME_EL7: tfe-stable-x86_64.el7
+ PULP3_REPO_NAME_EL8: tfe-stable-x86_64.el8
+ PULP3_DIST_NAME_EL8: tfe-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
+ - tags \ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3f3a69d..e6067c3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -56,6 +56,8 @@ elseif(ENABLE_SANITIZE_THREAD)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lasan")
endif()
+set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lelf")
+
if(ENABLE_SANITIZE_ADDRESS AND ENABLE_SANITIZE_THREAD)
message(WARNING "Both ENABLE_SANITIZE_ADDRESS and ENABLE_SANITIZE_THREAD set, only ENABLE_SANITIZE_ADDRESS effected.")
endif()
diff --git a/ci/envelope_rpm.sh b/ci/envelope_rpm.sh
new file mode 100644
index 0000000..b4f0944
--- /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}/bin/tfe"
+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 7744474..972e605 100644
--- a/ci/travis.sh
+++ b/ci/travis.sh
@@ -37,7 +37,6 @@ yum install -y mrzcpd numactl-devel zlib-devel librdkafka-devel systemd-devel
yum install -y libcjson-devel libmaatframe-devel libMESA_field_stat2-devel libMESA_handle_logger-devel
yum install -y libMESA_htable-devel libMESA_prof_load-devel librulescan-devel libwiredcfg-devel libWiredLB-devel sapp-devel libbreakpad_mini-devel
yum install -y libasan
-yum install -y libmnl-devel libnfnetlink-devel
if [ $ASAN_OPTION ];then
source /opt/rh/devtoolset-7/enable
@@ -64,6 +63,7 @@ fi
if [ -n "${UPLOAD_SYMBOL_FILES}" ]; then
rpm -i tfe*debuginfo*.rpm
- cp /usr/lib/debug/opt/tsg/tfe/bin/tfe.debug /tmp/tfe.debuginfo.${CI_COMMIT_SHORT_SHA}
+ ls -ahl /usr/lib/debug/opt/tsg/tfe/bin/
+ cp /usr/lib/debug/opt/tsg/tfe/bin/tfe*debug /tmp/tfe.debuginfo.${CI_COMMIT_SHORT_SHA}
sentry-cli upload-dif -t elf /tmp/tfe.debuginfo.${CI_COMMIT_SHORT_SHA}
fi
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