Select Git revision
__init__.py
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
.gitlab-ci.yml 2.82 KiB
variables:
PYTHON_VERSION: "3.6.13"
stages:
- build
- test
- package
workflow:
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
- if: $CI_PIPELINE_SOURCE == "web"
- if: $CI_COMMIT_TAG
.build:
stage: build
script:
- conan profile detect --force
- conan create . python/${PYTHON_VERSION}@soleil/stable --build-require -s compiler.libcxx=libstdc++11 -c tools.system.package_manager:mode=install -c tools.system.package_manager:tool=yum -c tools.system.package_manager:sudo=True
- conan install python/${PYTHON_VERSION}@soleil/stable --install-folder ${PYTHON_ROOT}
# Upgrade pip
- unset PYTHONPATH
- ${PYTHON_ROOT}/bin/pip3 install -q --no-cache-dir --upgrade pip
- ln -s pip3 ${PYTHON_ROOT}/bin/pip
# Fix python shebang to make it independent of install path
- grep -I -r -l "^#\!.*/bin/python.*$" ${PYTHON_ROOT} | xargs sed -i '1c\#\!/usr/bin/env python'
artifacts:
name: ${NAME}
paths:
- ${NAME}
.test:
stage: test
script:
- ${NAME}/bin/python --version | grep ${PYTHON_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/python/${PYTHON_VERSION}/"'
linux-x86_64:
extends: [".build"]
image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/conan-docker-tools/conan-el6-gcc91
variables:
NAME: "python-${PYTHON_VERSION}-linux-x86_64"
PYTHON_ROOT: "${CI_PROJECT_DIR}/${NAME}"
test-x86_64:
extends: [".test"]
image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/conan-docker-tools/conan-el6-gcc91
variables:
NAME: "python-${PYTHON_VERSION}-linux-x86_64"
needs:
- linux-x86_64
package-x86_64:
extends: [".package"]
image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/conan-docker-tools/conan-el6-gcc91
variables:
NAME: "python-${PYTHON_VERSION}-linux-x86_64"
needs:
- linux-x86_64
- test-x86_64
linux-i686:
extends: [".build"]
image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/conan-docker-tools/conan-el6-gcc91-x86