178 lines
4.8 KiB
YAML
178 lines
4.8 KiB
YAML
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/stellar"
|
|
INSTALL_DEPENDENCY_LIBRARY: mrzcpd-corei7 framework_env libfieldstat4-devel
|
|
TESTING_VERSION_BUILD: 0
|
|
BUILD_IMAGE_ROCKYLINUX: "git.mesalab.cn:7443/mesa_platform/build-env:rocky8-for-stellar"
|
|
|
|
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
|
|
- 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
|
|
|
|
###############################################################################
|
|
# 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
|
|
--suppress=integerOverflow
|
|
tags:
|
|
- share
|
|
|
|
run_cppcheck_for_rockylinux:
|
|
extends: .cppcheck_script
|
|
image: $BUILD_IMAGE_ROCKYLINUX
|
|
|
|
###############################################################################
|
|
# build
|
|
###############################################################################
|
|
.build_by_travis_for_rockylinux:
|
|
image: $BUILD_IMAGE_ROCKYLINUX
|
|
before_script: *everything_before_script
|
|
script:
|
|
- ./ci/travis.sh
|
|
tags:
|
|
- share
|
|
|
|
branch_build_debug_for_rockylinux:
|
|
stage: build
|
|
extends: .build_by_travis_for_rockylinux
|
|
variables:
|
|
BUILD_TYPE: Debug
|
|
except:
|
|
- /^develop-.*$/i
|
|
- /^release-.*$/i
|
|
- tags
|
|
|
|
branch_build_release_for_rockylinux:
|
|
stage: build
|
|
variables:
|
|
BUILD_TYPE: RelWithDebInfo
|
|
extends: .build_by_travis_for_rockylinux
|
|
except:
|
|
- /^develop-.*$/i
|
|
- /^release-.*$/i
|
|
- tags
|
|
|
|
develop_build_debug_for_rockylinux:
|
|
stage: build
|
|
extends: .build_by_travis_for_rockylinux
|
|
variables:
|
|
TESTING_VERSION_BUILD: 1
|
|
BUILD_TYPE: Debug
|
|
#ASAN_OPTION: ADDRESS
|
|
only:
|
|
- /^develop-.*$/i
|
|
- /^release-.*$/i
|
|
|
|
develop_build_release_for_rockylinux:
|
|
stage: build
|
|
extends: .build_by_travis_for_rockylinux
|
|
variables:
|
|
TESTING_VERSION_BUILD: 1
|
|
BUILD_TYPE: RelWithDebInfo
|
|
#ASAN_OPTION: ADDRESS
|
|
only:
|
|
- /^develop-.*$/i
|
|
- /^release-.*$/i
|
|
|
|
release_build_debug_for_rockylinux:
|
|
stage: build
|
|
variables:
|
|
BUILD_TYPE: Debug
|
|
extends: .build_by_travis_for_rockylinux
|
|
only:
|
|
- tags
|
|
|
|
release_build_release_for_rockylinux:
|
|
stage: build
|
|
variables:
|
|
BUILD_TYPE: RelWithDebInfo
|
|
extends: .build_by_travis_for_rockylinux
|
|
artifacts:
|
|
name: "stellar-install-$CI_COMMIT_REF_NAME-release"
|
|
paths:
|
|
- build/infra/*.rpm
|
|
only:
|
|
- tags
|
|
|
|
###############################################################################
|
|
# test
|
|
###############################################################################
|
|
test_in_rockylinux:
|
|
stage: test
|
|
image: $BUILD_IMAGE_ROCKYLINUX
|
|
extends: .build_by_travis_for_rockylinux
|
|
variables:
|
|
BUILD_TYPE: Debug
|
|
ASAN_OPTION: ADDRESS
|
|
allow_failure: false
|
|
script:
|
|
- ./ci/travis.sh
|
|
- cd build; ctest -V
|
|
dependencies:
|
|
- branch_build_release_for_rockylinux
|
|
- develop_build_release_for_rockylinux
|
|
- release_build_release_for_rockylinux
|
|
tags:
|
|
- share
|
|
|
|
###############################################################################
|
|
# upload
|
|
###############################################################################
|
|
.define_before_upload_rockylinux:
|
|
stage: upload
|
|
image: $BUILD_IMAGE_ROCKYLINUX
|
|
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_rockylinux:
|
|
extends: .define_before_upload_rockylinux
|
|
dependencies:
|
|
- release_build_release_for_rockylinux
|
|
script:
|
|
- python3 rpm_upload_tools.py $PULP3_REPO_NAME $PULP3_DIST_NAME *.rpm |