-
MADELA Patrick authoredMADELA Patrick authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
.gitlab-ci.yml 3.13 KiB
variables:
GIT_VERSION: "2.47.1"
PYTHON_VERSION: "3.10.8"
DEFAULT_HELP_FORMAT: "man"
stages:
- build
- test
- package
workflow:
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
- if: $CI_PIPELINE_SOURCE == "web"
- if: $CI_COMMIT_TAG
.build:
stage: build
script:
# Install prerequisite for git-gui and gitk
- echo "proxy=_none_" | sudo tee -a /etc/yum.conf
- sudo yum -y install tcl-devel tk-devel
# Install recent version of python required to build meson that is a requirement for building chain of git
- curl -s -L -o python.zip https://gitlab.synchrotron-soleil.fr/software-control-system/devtools/python3/-/jobs/artifacts/${PYTHON_VERSION}/download?job=${PLATFORM}
- unzip -q python.zip
- rm python.zip
- export PATH=$(readlink -e .)/python-${PYTHON_VERSION}-${PLATFORM}/bin:${PATH}
- python --version | grep ${PYTHON_VERSION}
- python -m pip install --upgrade pip
- python -m pip install conan
# Build git with conan
- conan profile detect --force
- conan create . --version ${GIT_VERSION} --build="*"
- conan install --requires git/${GIT_VERSION} --deployer=direct_deploy
- mv direct_deploy/git ${CI_PROJECT_DIR}/${NAME}
artifacts:
name: ${NAME}
paths:
- ${NAME}
.test:
stage: test
script:
- ${NAME}/bin/git --version | grep ${GIT_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/git/${GIT_VERSION}/"'
linux-x86_64:
extends: [".build"]
image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/conan-docker-tools/conan-el6-gcc91
variables:
PLATFORM: linux-x86_64
NAME: "git-${GIT_VERSION}-${PLATFORM}"
test-x86_64:
extends: [".test"]
image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/conan-docker-tools/conan-el6-gcc91
variables:
PLATFORM: linux-x86_64
NAME: "git-${GIT_VERSION}-${PLATFORM}"
needs:
- linux-x86_64
package-x86_64:
extends: [".package"]