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: framework_env libfieldstat4-devel MRZCPD: mrzcpd-corei7 TESTING_VERSION_BUILD: 0 BUILD_IMAGE_X86_64_ROCKY8: "git.mesalab.cn:7443/mesa_platform/build-env:rocky8-for-stellar" BUILD_IMAGE_AARCH64_ROCKY9: "git.mesalab.cn:7443/mesa_platform/build-env:rocky9-aarch64" 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 $MRZCPD - source /etc/profile.d/mrzcpd.sh - 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 --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 --suppress=*:${CI_PROJECT_DIR}/deps/* --suppress=*:${CI_PROJECT_DIR}/infra/monitor/stellar-dump/* --suppress=*:${CI_PROJECT_DIR}/decoders/lpi_plus/libprotoident/* run_cppcheck_for_x86_64_rocky8: extends: .cppcheck_script image: $BUILD_IMAGE_X86_64_ROCKY8 tags: - tsg-os-builder-el8 run_cppcheck_for_aarch64_rocky9: extends: .cppcheck_script image: $BUILD_IMAGE_AARCH64_ROCKY9 tags: - tsg-os-builder-aarch64 ############################################################################### # build ############################################################################### .build_before_script: stage: build before_script: *everything_before_script script: - mkdir build || true - cd build - > cmake3 -DCMAKE_CXX_FLAGS=$CXX_FLAGS -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DASAN_OPTION=$ASAN_OPTION -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX -DVERSION_DAILY_BUILD=$TESTING_VERSION_BUILD .. - make -j4 VERBOSE=1 .build_for_x86_64_rocky8: image: $BUILD_IMAGE_X86_64_ROCKY8 extends: .build_before_script tags: - tsg-os-builder-el8 branch_build_debug_for_x86_64_rocky8: extends: .build_for_x86_64_rocky8 variables: BUILD_TYPE: Debug except: - /^develop-.*$/i - /^release-.*$/i - tags branch_build_release_for_x86_64_rocky8: extends: .build_for_x86_64_rocky8 variables: BUILD_TYPE: RelWithDebInfo artifacts: name: "stellar-branch_build-$CI_COMMIT_REF_NAME-release" paths: - build/* except: - /^develop-.*$/i - /^release-.*$/i - tags develop_build_debug_for_x86_64_rocky8: extends: .build_for_x86_64_rocky8 variables: TESTING_VERSION_BUILD: 1 BUILD_TYPE: Debug #ASAN_OPTION: ADDRESS only: - /^develop-.*$/i - /^release-.*$/i develop_build_release_for_x86_64_rocky8: extends: .build_for_x86_64_rocky8 variables: TESTING_VERSION_BUILD: 1 BUILD_TYPE: RelWithDebInfo #ASAN_OPTION: ADDRESS artifacts: name: "stellar-develop_build-$CI_COMMIT_REF_NAME-release" paths: - build/* only: - /^develop-.*$/i - /^release-.*$/i release_build_debug_for_x86_64_rocky8: extends: .build_for_x86_64_rocky8 variables: BUILD_TYPE: Debug only: - tags release_build_release_for_x86_64_rocky8: extends: .build_for_x86_64_rocky8 variables: BUILD_TYPE: RelWithDebInfo artifacts: name: "stellar-release_build-$CI_COMMIT_REF_NAME-release" paths: - build/* only: - tags .build_for_aarch64_rocky9: image: $BUILD_IMAGE_AARCH64_ROCKY9 extends: .build_before_script variables: MRZCPD: mrzcpd tags: - tsg-os-builder-aarch64 branch_build_debug_for_aarch64_rocky9: extends: .build_for_aarch64_rocky9 variables: BUILD_TYPE: Debug except: - /^develop-.*$/i - /^release-.*$/i - tags branch_build_release_for_aarch64_rocky9: extends: .build_for_aarch64_rocky9 variables: BUILD_TYPE: RelWithDebInfo artifacts: name: "stellar-branch_build-$CI_COMMIT_REF_NAME-release" paths: - build/* except: - /^develop-.*$/i - /^release-.*$/i - tags develop_build_debug_for_aarch64_rocky9: extends: .build_for_aarch64_rocky9 variables: TESTING_VERSION_BUILD: 1 BUILD_TYPE: Debug #ASAN_OPTION: ADDRESS only: - /^develop-.*$/i - /^release-.*$/i develop_build_release_for_aarch64_rocky9: extends: .build_for_aarch64_rocky9 variables: TESTING_VERSION_BUILD: 1 BUILD_TYPE: RelWithDebInfo #ASAN_OPTION: ADDRESS artifacts: name: "stellar-develop_build-$CI_COMMIT_REF_NAME-release" paths: - build/* only: - /^develop-.*$/i - /^release-.*$/i release_build_debug_for_aarch64_rocky9: extends: .build_for_aarch64_rocky9 variables: BUILD_TYPE: Debug only: - tags release_build_release_for_aarch64_rocky9: extends: .build_for_aarch64_rocky9 variables: BUILD_TYPE: RelWithDebInfo artifacts: name: "stellar-release_build-$CI_COMMIT_REF_NAME-release" paths: - build/* only: - tags ############################################################################### # test ############################################################################### .setup_test_env: stage: test allow_failure: false before_script: - *everything_before_script script: - cd build; ctest -V test_for_x86_64_rocky8: extends: .setup_test_env image: $BUILD_IMAGE_X86_64_ROCKY8 dependencies: - branch_build_release_for_x86_64_rocky8 - develop_build_release_for_x86_64_rocky8 - release_build_release_for_x86_64_rocky8 tags: - tsg-os-builder-el8 test_for_aarch64_rocky9: extends: .setup_test_env image: $BUILD_IMAGE_AARCH64_ROCKY9 dependencies: - branch_build_release_for_aarch64_rocky9 - develop_build_release_for_aarch64_rocky9 - release_build_release_for_aarch64_rocky9 tags: - tsg-os-builder-aarch64 ############################################################################### # upload ############################################################################### .define_before_upload: stage: upload before_script: - pwd; ls -l ; cd build ; ls -l - cp /root/rpm_upload_tools.py ./ script: - python3 rpm_upload_tools.py $PULP3_REPO_NAME $PULP3_DIST_NAME *.rpm only: - tags rpm_upload_for_x86_64_rocky8: extends: .define_before_upload image: $BUILD_IMAGE_X86_64_ROCKY8 variables: PULP3_REPO_NAME: stellar-stable-x86_64.el8 PULP3_DIST_NAME: stellar-stable-x86_64.el8 dependencies: - release_build_release_for_x86_64_rocky8 tags: - tsg-os-builder-el8 rpm_upload_for_aarch64_rocky9: extends: .define_before_upload image: $BUILD_IMAGE_AARCH64_ROCKY9 variables: PULP3_REPO_NAME: stellar-stable-aarch64.el9 PULP3_DIST_NAME: stellar-stable-aarch64.el9 dependencies: - release_build_release_for_aarch64_rocky9 tags: - tsg-os-builder-aarch64