🐎 ci(optimize ci stage): parallel & matrix
This commit is contained in:
355
.gitlab-ci.yml
355
.gitlab-ci.yml
@@ -3,18 +3,28 @@ variables:
|
||||
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
|
||||
- cppcheck
|
||||
- build
|
||||
- test
|
||||
- upload
|
||||
|
||||
.predefined_matrix_x86_64: &predefined_matrix_x86_64
|
||||
TAG: "tsg-os-builder-el8"
|
||||
BUILD_IMAGE: "git.mesalab.cn:7443/mesa_platform/build-env:rocky8-for-stellar"
|
||||
MRZCPD: "mrzcpd-corei7"
|
||||
PULP3_REPO_NAME: "stellar-stable-x86_64.el8"
|
||||
PULP3_DIST_NAME: "stellar-stable-x86_64.el8"
|
||||
|
||||
.predefined_matrix_aarch64: &predefined_matrix_aarch64
|
||||
TAG: "tsg-os-builder-aarch64"
|
||||
BUILD_IMAGE: "git.mesalab.cn:7443/mesa_platform/build-env:rocky9-aarch64"
|
||||
MRZCPD: "mrzcpd"
|
||||
PULP3_REPO_NAME: "stellar-stable-aarch64.el9"
|
||||
PULP3_DIST_NAME: "stellar-stable-aarch64.el9"
|
||||
|
||||
|
||||
|
||||
.everything_before_script: &everything_before_script
|
||||
- mkdir -p $BUILD_PADDING_PREFIX/$CI_PROJECT_NAMESPACE/
|
||||
@@ -25,269 +35,118 @@ stages:
|
||||
- source /etc/profile.d/mrzcpd.sh
|
||||
- source /etc/profile.d/framework.sh
|
||||
|
||||
.build_script: &build_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
|
||||
..
|
||||
- make -j4 VERBOSE=1
|
||||
|
||||
###############################################################################
|
||||
# cppcheck
|
||||
###############################################################################
|
||||
.cppcheck_script:
|
||||
variables:
|
||||
BUILD_TYPE: Debug
|
||||
cppcheck:
|
||||
stage: cppcheck
|
||||
parallel:
|
||||
matrix:
|
||||
- <<: *predefined_matrix_x86_64
|
||||
- <<: *predefined_matrix_aarch64
|
||||
image: $BUILD_IMAGE
|
||||
tags:
|
||||
- $TAG
|
||||
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/*
|
||||
- |
|
||||
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:
|
||||
###############################################################################
|
||||
build:
|
||||
stage: build
|
||||
parallel:
|
||||
matrix:
|
||||
- <<: *predefined_matrix_x86_64
|
||||
- <<: *predefined_matrix_aarch64
|
||||
image: $BUILD_IMAGE
|
||||
tags:
|
||||
- $TAG
|
||||
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
|
||||
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
|
||||
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
|
||||
BUILD_TYPE: "RelWithDebInfo"
|
||||
ASAN_OPTION: "OFF"
|
||||
script: *build_script
|
||||
artifacts:
|
||||
name: "stellar-release_build-$CI_COMMIT_REF_NAME-release"
|
||||
name: "build-artifacts-${CI_COMMIT_REF_NAME}-${TAG}-${BUILD_TYPE}"
|
||||
paths:
|
||||
- build/infra/*.rpm
|
||||
expire_in: 1h
|
||||
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
|
||||
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
|
||||
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/infra/*.rpm
|
||||
expire_in: 1h
|
||||
only:
|
||||
- tags
|
||||
|
||||
when: on_success
|
||||
###############################################################################
|
||||
# test
|
||||
###############################################################################
|
||||
.setup_test_env:
|
||||
test:
|
||||
stage: test
|
||||
allow_failure: false
|
||||
parallel:
|
||||
matrix:
|
||||
- <<: *predefined_matrix_x86_64
|
||||
- <<: *predefined_matrix_aarch64
|
||||
image: $BUILD_IMAGE
|
||||
tags:
|
||||
- $TAG
|
||||
dependencies:
|
||||
- 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
|
||||
|
||||
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
|
||||
variables:
|
||||
MRZCPD: mrzcpd
|
||||
dependencies:
|
||||
- branch_build_release_for_aarch64_rocky9
|
||||
- develop_build_release_for_aarch64_rocky9
|
||||
- release_build_release_for_aarch64_rocky9
|
||||
tags:
|
||||
- tsg-os-builder-aarch64
|
||||
variables:
|
||||
BUILD_TYPE: "Debug"
|
||||
ASAN_OPTION: "ADDRESS"
|
||||
script:
|
||||
- *build_script
|
||||
- ctest -V
|
||||
|
||||
###############################################################################
|
||||
# upload
|
||||
# upload
|
||||
###############################################################################
|
||||
.define_before_upload:
|
||||
upload:
|
||||
stage: upload
|
||||
parallel:
|
||||
matrix:
|
||||
- <<: *predefined_matrix_x86_64
|
||||
- <<: *predefined_matrix_aarch64
|
||||
image: $BUILD_IMAGE
|
||||
tags:
|
||||
- $TAG
|
||||
dependencies:
|
||||
- build
|
||||
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
|
||||
- python3 rpm_upload_tools.py $PULP3_REPO_NAME $PULP3_DIST_NAME *.rpm
|
||||
rules:
|
||||
- if: $CI_COMMIT_TAG
|
||||
Reference in New Issue
Block a user