TSG-9550 TFE运行CI时同时构建CentOS7/CentOS8运行环境的安装包

This commit is contained in:
luwenpeng
2022-02-09 17:17:42 +08:00
parent aa252adf3b
commit 65f7f3d085
5 changed files with 198 additions and 50 deletions

View File

@@ -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
script:
- yum makecache
- ./ci/travis.sh
tags:
- share
- 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
branch_build_debug:
.build_by_travis_for_centos7:
stage: build
extends: .build_by_travis
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
- ./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,14 @@ 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:
@@ -112,36 +130,128 @@ release_build_release:
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:
- build/*.rpm
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

View File

@@ -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()

13
ci/envelope_rpm.sh Normal file
View File

@@ -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

View File

@@ -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

View File

@@ -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