This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
stellar-stellar/.gitlab-ci.yml
2024-09-02 15:47:16 +08:00

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