| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357 |
- stages:
- - build
- - repoupload
- - deploy
- variables:
- CMAKE_INTERPROCEDURAL_OPTIMIZATION: 0
- VERBOSE: 1
- DIAGNOSTIC: 1
- PACK_ICUDATA: 0
- PACK_GALERA: 0
- CMAKE_XTRA: -DCMAKE_UNITY_BUILD=1
- # ==================== .helper generic build ======================
- .build:
- stage: build
- interruptible: true
- rules:
- - if: $CI_MERGE_REQUEST_ID
- when: manual
- - if: $CI_MERGE_REQUEST_ID == null
- when: manual
- needs: [ ]
- tags:
- - docker
- image: manticoresearch/external_toolchain:vcpkg331_20250114
- variables:
- CACHEB: "../cache"
- arch: x86_64
- boost: boost_nov22
- sysroot: roots_nov22
- script:
- - mkdir build && cd build
- - cmake -DPACK=1 -DBUILD_TAG=$RELEASE_TAG $CMAKE_XTRA ..
- - cmake --build . --target package
- cache:
- key: release_$DISTR$arch
- paths:
- - cache
- artifacts:
- paths:
- - build/manticore*deb
- - build/manticore-*.tar.gz
- - build/manticore-*.zip
- - build/manticore-*.exe
- when: on_success
- expire_in: 12 hrs
- .build_rhel:
- extends: [ .build ]
- variables:
- boost: boost_rhel_feb17
- before_script:
- - export CMAKE_TOOLCHAIN_FILE=$(pwd)/dist/build_dockers/cross/linux.cmake
- - ln -s $(pwd) /builds_manticoresearch_dev_usr_src_debug_manticore_component_src_0_0
- - cd /builds_manticoresearch_dev_usr_src_debug_manticore_component_src_0_0
- artifacts:
- paths:
- - build/manticore*rpm
- # ==================== .helper generic and specific collect of built artifacts ======================
- .collect_job:
- variables:
- GIT_STRATEGY: fetch
- stage: repoupload
- interruptible: true
- tags:
- - repo
- rules:
- - if: $CI_MERGE_REQUEST_ID
- when: manual
- allow_failure: true
- - if: $CI_COMMIT_BRANCH =~ /^manticore-.*$/
- when: manual
- - if: $CI_COMMIT_BRANCH == "maintenance-release"
- when: manual
- - if: $CI_COMMIT_BRANCH == "master"
- when: on_success
- .collect_deb:
- extends: [ .collect_job ]
- script:
- - wget https://raw.githubusercontent.com/manticoresoftware/repo_scripts/main/upload_repo_deb
- - chmod +x upload_repo_deb
- - MAKE_BUNDLE=1 /bin/bash ./upload_repo_deb
- .collect_rpm:
- extends: [ .collect_job ]
- script:
- - wget https://raw.githubusercontent.com/manticoresoftware/repo_scripts/main/upload_repo_rpm
- - chmod +x upload_repo_rpm
- - MAKE_BUNDLE=1 /bin/bash ./upload_repo_rpm
- .collect_arc:
- extends: [ .collect_job ]
- script:
- - wget https://raw.githubusercontent.com/manticoresoftware/repo_scripts/main/upload_repo_arc
- - chmod +x upload_repo_arc
- - /bin/bash ./upload_repo_arc
- # ==================== MacOS ======================
- macos:
- extends: [ .build ]
- before_script:
- - export CMAKE_TOOLCHAIN_FILE=$(pwd)/dist/build_dockers/cross/osx.cmake
- variables:
- DISTR: macos
- macos_arm:
- extends: [ macos ]
- variables:
- arch: arm64
- .collect_macos:
- extends: [ .collect_arc ]
- needs: [ macos, macos_arm ]
- # ==================== Windows ======================
- windows:
- extends: [ .build ]
- variables:
- arch: x64
- sysroot: roots_mysql83_jan17
- boost: boost_80
- DISTR: windows
- # windows build with native clang flavour
- .windows_cl:
- extends: [ windows ]
- before_script:
- - export CMAKE_TOOLCHAIN_FILE=$(pwd)/dist/build_dockers/cross/windows.cmake
- .collect_windows:
- extends: [ .collect_arc ]
- needs: [ windows ]
- # ==================== Centos 7 ======================
- rhel7:
- extends: [ .build_rhel ]
- variables:
- DISTR: rhel7
- rhel7_arm:
- extends: [ rhel7 ]
- variables:
- arch: aarch64
- .collect_rhel7:
- extends: [ .collect_rpm ]
- needs: [ rhel7, rhel7_arm ]
- variables:
- DISTRO: 7
- # ==================== Centos 8 ======================
- rhel8:
- extends: [ .build_rhel ]
- variables:
- DISTR: rhel8
- rhel8_arm:
- extends: [ rhel8 ]
- variables:
- arch: aarch64
- .collect_rhel8:
- extends: [ .collect_rpm ]
- needs: [ rhel8, rhel8_arm ]
- variables:
- DISTRO: 8
- # ==================== RHEL 9 ======================
- rhel9:
- extends: [ .build_rhel ]
- variables:
- DISTR: rhel9
- rhel9_arm:
- extends: [ rhel9 ]
- variables:
- arch: aarch64
- .collect_rhel9:
- extends: [ .collect_rpm ]
- needs: [ rhel9, rhel9_arm ]
- variables:
- DISTRO: 9
- # ==================== Debian-based ======================
- # ==================== Ubuntu Bionic ======================
- bionic:
- extends: [ .build ]
- before_script:
- - export CMAKE_TOOLCHAIN_FILE=$(pwd)/dist/build_dockers/cross/linux.cmake
- variables:
- DISTR: bionic
- bionic_arm:
- extends: [ bionic ]
- variables:
- arch: aarch64
- .collect_bionic:
- extends: [ .collect_deb ]
- needs: [ bionic, bionic_arm ]
- variables:
- DISTRO: bionic
- # ==================== Ubuntu Focal ======================
- focal:
- extends: [ .build ]
- before_script:
- - export CMAKE_TOOLCHAIN_FILE=$(pwd)/dist/build_dockers/cross/linux.cmake
- variables:
- DISTR: focal
- focal_arm:
- extends: [ focal ]
- variables:
- arch: aarch64
- .collect_focal:
- extends: [ .collect_deb ]
- needs: [ focal, focal_arm ]
- variables:
- DISTRO: focal
- # ==================== Debian Buster ======================
- buster:
- extends: [ .build ]
- before_script:
- - export CMAKE_TOOLCHAIN_FILE=$(pwd)/dist/build_dockers/cross/linux.cmake
- variables:
- DISTR: buster
- buster_arm:
- extends: [ buster ]
- variables:
- arch: aarch64
- .collect_buster:
- extends: [ .collect_deb ]
- needs: [ buster, buster_arm ]
- variables:
- DISTRO: buster
- # ==================== Debian Bullseye ======================
- bullseye:
- extends: [ .build ]
- before_script:
- - export CMAKE_TOOLCHAIN_FILE=$(pwd)/dist/build_dockers/cross/linux.cmake
- variables:
- DISTR: bullseye
- bullseye_arm:
- extends: [ bullseye ]
- variables:
- arch: aarch64
- .collect_bullseye:
- extends: [ .collect_deb ]
- needs: [ bullseye, bullseye_arm ]
- variables:
- DISTRO: bullseye
- # ==================== Ubuntu Jammy ======================
- jammy:
- extends: [ .build ]
- before_script:
- - export CMAKE_TOOLCHAIN_FILE=$(pwd)/dist/build_dockers/cross/linux.cmake
- variables:
- DISTR: jammy
- jammy_arm:
- extends: [ jammy ]
- variables:
- arch: aarch64
- .collect_jammy:
- extends: [ .collect_deb ]
- needs: [ jammy, jammy_arm ]
- variables:
- DISTRO: jammy
- # ==================== Debian Bookworm ======================
- bookworm:
- extends: [ .build ]
- before_script:
- - export CMAKE_TOOLCHAIN_FILE=$(pwd)/dist/build_dockers/cross/linux.cmake
- variables:
- DISTR: bookworm
- bookworm_arm:
- extends: [ bookworm ]
- variables:
- arch: aarch64
- .collect_bookworm:
- extends: [ .collect_deb ]
- needs: [ bookworm, bookworm_arm ]
- variables:
- DISTRO: bookworm
- # ==================== Docker image ======================
- .nsis_release:
- stage: deploy
- rules:
- trigger:
- include: dist/nsis-release.yml
- needs:
- - job: .collect_windows
- .build_docker:
- stage: deploy
- needs:
- - job: .collect_focal
- optional: true
- interruptible: true
- variables:
- GIT_STRATEGY: none
- rules:
- - if: $CI_MERGE_REQUEST_ID
- when: manual
- allow_failure: true
- - if: $CI_COMMIT_BRANCH =~ /^manticore-.*$/
- when: manual
- - if: $CI_COMMIT_BRANCH == "maintenance-release"
- when: manual
- - if: $CI_COMMIT_BRANCH == "master"
- when: on_success
- tags:
- - dev-host
- script:
- - echo "Build docker image"
- - /bin/bash dist/dockerhub_deploy.sh
|