-
MADELA Patrick authoredMADELA Patrick authored
Code owners
.gitlab-ci.yml 4.84 KiB
variables:
PREBUILD_CMAKE_VERSION: 3.18.2
CMAKE_VERSION: 3.28.3
workflow:
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
- if: $CI_PIPELINE_SOURCE == "web"
- if: $CI_COMMIT_TAG
stages:
- prebuild
- build
- test
- package
# The boostrap build is too long for a job and you can build Cmake with Cmake but latest version requires at least Cmake 3.13
# Therefore we add job to prebuild a previous compatible Cmake with legacy system cmake to build after the final cmake
.prebuild:
stage: prebuild
script:
- yum install -y openssl-devel
# Get latest version of cmake available for i386 (cmake 3 not available for CentOS 7 x86)
- curl -s -OL https://cmake.org/files/v3.6/cmake-3.6.3-Linux-i386.tar.gz
- tar -xzvf cmake-3.6.3-Linux-i386.tar.gz
# Get source of a cmake buildable with latest version of cmake available for i386
- curl -s -OL https://github.com/Kitware/CMake/releases/download/v${PREBUILD_CMAKE_VERSION}/cmake-${PREBUILD_CMAKE_VERSION}-SHA-256.txt
- curl -s -OL https://github.com/Kitware/CMake/releases/download/v${PREBUILD_CMAKE_VERSION}/cmake-${PREBUILD_CMAKE_VERSION}.tar.gz
- echo "$(cat cmake-${PREBUILD_CMAKE_VERSION}-SHA-256.txt | grep cmake-${PREBUILD_CMAKE_VERSION}.tar.gz)" | sha256sum --check --status
- tar -xzf cmake-${PREBUILD_CMAKE_VERSION}.tar.gz
- mkdir build && cd build
- ${CI_PROJECT_DIR}/cmake-3.6.3-Linux-i386/bin/cmake ../cmake-${PREBUILD_CMAKE_VERSION} -DCMAKE_INSTALL_PREFIX=${CI_PROJECT_DIR}/${NAME}
- make
- make install
artifacts:
name: ${NAME}
paths:
- ${NAME}
.build:
stage: build
script:
- yum install -y openssl-devel
- curl -s -OL https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-SHA-256.txt
- curl -s -OL https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}.tar.gz
- echo "$(cat cmake-${CMAKE_VERSION}-SHA-256.txt | grep cmake-${CMAKE_VERSION}.tar.gz)" | sha256sum --check --status
- tar -xzf cmake-${CMAKE_VERSION}.tar.gz
- mkdir build && cd build
- ${CI_PROJECT_DIR}/${PREBUILD_NAME}/bin/cmake ../cmake-${CMAKE_VERSION} -DCMAKE_INSTALL_PREFIX=${CI_PROJECT_DIR}/${NAME}
- make
- make install
artifacts:
name: ${NAME}
paths:
- ${NAME}
.test:
stage: test
script:
- ${NAME}/bin/cmake --version | grep ${CMAKE_VERSION}
.package:
stage: package
script:
- cd ${CI_PROJECT_DIR}/${NAME}
- zip -r --symlinks ../${NAME}.zip *
- 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file ../${NAME}.zip "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/cmake/${CMAKE_VERSION}/"'
prebuild-i686:
extends: [".prebuild"]