diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f27091eccf648eb29cac97950b96c95bf0907e09..f97ec5eace839fa93203ce7e9b3a0ec2be70463f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1 +1,129 @@ -include: 'https://gitlab.idiap.ch/bob/bob.devtools/raw/master/bob/devtools/data/gitlab-ci/single-package.yaml' \ No newline at end of file +# This build file uses template features from YAML so it is generic enough for +# any Bob project. Don't modify it unless you know what you're doing. + +# Definition of global variables (all stages) +variables: + CONDA_ROOT: "${CI_PROJECT_DIR}/miniconda" + + +# Definition of our build pipeline order +stages: + - build + - deploy + - pypi + + +# Build targets +.build_template: &build_job + stage: build + before_script: + - mkdir _ci + - curl --silent "https://gitlab.idiap.ch/bob/bob.admin/raw/master/gitlab/install.sh" > _ci/install.sh + - chmod 755 _ci/install.sh + - ./_ci/install.sh _ci master #installs ci support scripts + - ./_ci/before_build.sh + script: + - ./_ci/build.sh + after_script: + - ./_ci/after_build.sh + cache: &build_caches + paths: + - miniconda.sh + - ${CONDA_ROOT}/pkgs/*.tar.bz2 + - ${CONDA_ROOT}/pkgs/urls.txt + + +.build_linux_template: &linux_build_job + <<: *build_job + tags: + - docker + image: continuumio/conda-concourse-ci + artifacts: + expire_in: 1 week + paths: + - _ci/ + - ${CONDA_ROOT}/conda-bld/linux-64/*.tar.bz2 + cache: + <<: *build_caches + key: "linux-cache" + + +.build_macosx_template: &macosx_build_job + <<: *build_job + tags: + - macosx + artifacts: + expire_in: 1 week + paths: + - _ci/ + - ${CONDA_ROOT}/conda-bld/osx-64/*.tar.bz2 + cache: + <<: *build_caches + key: "macosx-cache" + + +build_linux_36: + <<: *linux_build_job + variables: + PYTHON_VERSION: "3.6" + BUILD_EGG: "true" + artifacts: + expire_in: 1 week + paths: + - _ci/ + - dist/*.zip + - sphinx + - ${CONDA_ROOT}/conda-bld/linux-64/*.tar.bz2 + + +build_macosx_36: + <<: *macosx_build_job + variables: + PYTHON_VERSION: "3.6" + + +# Deploy targets +.deploy_template: &deploy_job + stage: deploy + before_script: + - ./_ci/install.sh _ci master #updates ci support scripts + script: + - ./_ci/deploy.sh + dependencies: + - build_linux_36 + - build_macosx_36 + tags: + - deployer + + +deploy_beta: + <<: *deploy_job + environment: beta + only: + - master + + +deploy_stable: + <<: *deploy_job + environment: stable + only: + - /^v\d+\.\d+\.\d+([abc]\d*)?$/ # PEP-440 compliant version (tags) + except: + - branches + + +pypi: + stage: pypi + environment: pypi + only: + - /^v\d+\.\d+\.\d+([abc]\d*)?$/ # PEP-440 compliant version (tags) + except: + - branches + before_script: + - ./_ci/install.sh _ci master #updates ci support scripts + script: + - ./_ci/pypi.sh + dependencies: + - build_linux_36 + tags: + - deployer \ No newline at end of file