From 3daafd80547517dbec27126f9344140d698b6e2a Mon Sep 17 00:00:00 2001 From: Tiago Freitas Pereira <tiagofrepereira@gmail.com> Date: Tue, 27 Mar 2018 17:21:27 +0200 Subject: [PATCH] [ci] Ported to the new CI --- .gitlab-ci.yml | 298 ++++++++++++++++-------------------------------- conda/meta.yaml | 52 +++++++++ 2 files changed, 148 insertions(+), 202 deletions(-) create mode 100644 conda/meta.yaml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fa11e07..7622b06 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,249 +1,143 @@ -# This build file heavily 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. +# 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 + +# Definition of our build pipeline order stages: - build - - test - - docs - - wheels - deploy + - pypi -# --------- -# Templates -# --------- - -# Template for the build stage -# Needs to run on all supported architectures, platforms and python versions +# Build targets .build_template: &build_job stage: build before_script: - - git clean -ffdx - 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 #updates + - ./_ci/install.sh _ci master #installs ci support scripts - ./_ci/before_build.sh script: - ./_ci/build.sh after_script: - ./_ci/after_build.sh - artifacts: - expire_in: 1 week + cache: &build_caches paths: - - _ci/ - - dist/ - - sphinx/ - - -# Template for the test stage - re-installs from uploaded wheels -# Needs to run on all supported architectures, platforms and python versions -.test_template: &test_job - stage: test - before_script: - - ./_ci/install.sh _ci #updates - - ./_ci/before_test.sh - script: - - ./_ci/test.sh - after_script: - - ./_ci/after_test.sh - - -# Template for the wheel uploading stage -# Needs to run against one supported architecture, platform and python version -.wheels_template: &wheels_job - stage: wheels - environment: intranet - only: - - master - - /^v\d+\.\d+\.\d+([abc]\d*)?$/ # PEP-440 compliant version (tags) - before_script: - - ./_ci/install.sh _ci #updates - - ./_ci/before_wheels.sh - script: - - ./_ci/wheels.sh - after_script: - - ./_ci/after_wheels.sh - - -# Template for (latest) documentation upload stage -# Only one real job needs to do this -.docs_template: &docs_job - stage: docs - environment: intranet - only: - - master - before_script: - - ./_ci/install.sh _ci #updates - - ./_ci/before_docs.sh - script: - - ./_ci/docs.sh - after_script: - - ./_ci/after_docs.sh + - miniconda.sh + - ${CONDA_ROOT}/pkgs/*.tar.bz2 + - ${CONDA_ROOT}/pkgs/urls.txt -# Template for the deployment stage - re-installs from uploaded wheels -# Needs to run on a single architecture only -# Will deploy your package to PyPI and other required services -# Only runs for tags -.deploy_template: &deploy_job - stage: deploy - environment: internet - only: - - /^v\d+\.\d+\.\d+([abc]\d*)?$/ # PEP-440 compliant version (tags) - except: - - branches - before_script: - - ./_ci/install.sh _ci #updates - - ./_ci/before_deploy.sh - script: - - ./_ci/deploy.sh - after_script: - - ./_ci/after_deploy.sh - - -# ------------- -# Build Targets -# ------------- - -# Linux + Python 2.7: Builds, tests, uploads wheel and deploys (if needed) -build_linux_27: +.build_linux_template: &linux_build_job <<: *build_job - variables: &linux_27_build_variables - PYTHON_VERSION: "2.7" - WHEEL_TAG: "py27" tags: - - conda-linux - -test_linux_27: - <<: *test_job - variables: *linux_27_build_variables - dependencies: - - build_linux_27 - tags: - - conda-linux - -wheels_linux_27: - <<: *wheels_job - variables: *linux_27_build_variables - dependencies: - - build_linux_27 - tags: - - conda-linux - -deploy_linux_27: - <<: *deploy_job - variables: *linux_27_build_variables - dependencies: - - build_linux_27 - tags: - - conda-linux + - 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" -# Linux + Python 3.4: Builds and tests -build_linux_34: +.build_macosx_template: &macosx_build_job <<: *build_job - variables: &linux_34_build_variables - PYTHON_VERSION: "3.4" - WHEEL_TAG: "py3" tags: - - conda-linux - -test_linux_34: - <<: *test_job - variables: *linux_34_build_variables - dependencies: - - build_linux_34 - tags: - - conda-linux - + - macosx + artifacts: + expire_in: 1 week + paths: + - _ci/ + - ${CONDA_ROOT}/conda-bld/osx-64/*.tar.bz2 + cache: + <<: *build_caches + key: "macosx-cache" -# Linux + Python 3.5: Builds, tests and uploads wheel -build_linux_35: - <<: *build_job - variables: &linux_35_build_variables - PYTHON_VERSION: "3.5" - WHEEL_TAG: "py3" - tags: - - conda-linux -test_linux_35: - <<: *test_job - variables: *linux_35_build_variables - dependencies: - - build_linux_35 - tags: - - conda-linux +build_linux_27: + <<: *linux_build_job + variables: + PYTHON_VERSION: "2.7" -wheels_linux_35: - <<: *wheels_job - variables: *linux_35_build_variables - dependencies: - - build_linux_35 - tags: - - conda-linux -docs_linux_35: - <<: *docs_job - variables: *linux_35_build_variables - dependencies: - - build_linux_35 - tags: - - conda-linux +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 -# Mac OSX + Python 2.7: Builds and tests build_macosx_27: - <<: *build_job - variables: &macosx_27_build_variables + <<: *macosx_build_job + variables: PYTHON_VERSION: "2.7" - WHEEL_TAG: "py27" - tags: - - conda-macosx -test_macosx_27: - <<: *test_job - variables: *macosx_27_build_variables + +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_27 + - build_linux_36 - build_macosx_27 + - build_macosx_36 tags: - - conda-macosx + - deployer -# Mac OSX + Python 3.4: Builds and tests -build_macosx_34: - <<: *build_job - variables: &macosx_34_build_variables - PYTHON_VERSION: "3.4" - WHEEL_TAG: "py3" - tags: - - conda-macosx +deploy_beta: + <<: *deploy_job + environment: beta + only: + - master -test_macosx_34: - <<: *test_job - variables: *macosx_34_build_variables - dependencies: - - build_macosx_34 - tags: - - conda-macosx +deploy_stable: + <<: *deploy_job + environment: stable + only: + - /^v\d+\.\d+\.\d+([abc]\d*)?$/ # PEP-440 compliant version (tags) + except: + - branches -# Mac OSX + Python 3.5: Builds and tests -build_macosx_35: - <<: *build_job - variables: &macosx_35_build_variables - PYTHON_VERSION: "3.5" - WHEEL_TAG: "py3" - tags: - - conda-macosx -test_macosx_35: - <<: *test_job - variables: *macosx_35_build_variables +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_macosx_35 + - build_linux_36 tags: - - conda-macosx + - deployer diff --git a/conda/meta.yaml b/conda/meta.yaml new file mode 100644 index 0000000..36cfbd6 --- /dev/null +++ b/conda/meta.yaml @@ -0,0 +1,52 @@ +{% set name = 'bob.db.cuhk_cufsf' %} +{% set project_dir = environ.get('RECIPE_DIR') + '/..' %} + +package: + name: {{ name }} + version: {{ environ.get('BOB_PACKAGE_VERSION', '0.0.1') }} + +build: + entry_points: + number: {{ environ.get('BOB_BUILD_NUMBER', 0) }} + run_exports: + - {{ pin_subpackage(name) }} + script: + - cd {{ project_dir }} + {% if environ.get('BUILD_EGG') %} + - python setup.py sdist --formats=zip + {% endif %} + - python setup.py install --single-version-externally-managed --record record.txt + - bob_dbmanage.py {{ name.replace('bob.db.', '') }} download --missing + +requirements: + host: + - python {{ python }} + - setuptools {{ setuptools }} + - six {{ six }} + - bob.db.base + run: + - python + - setuptools + - six + +test: + imports: + - {{ name }} + commands: + - nosetests --with-coverage --cover-package={{ name }} -sv {{ name }} + - sphinx-build -aEW {{ project_dir }}/doc {{ project_dir }}/sphinx + - sphinx-build -aEb doctest {{ project_dir }}/doc sphinx + - conda inspect linkages -p $PREFIX {{ name }} # [not win] + - conda inspect objects -p $PREFIX {{ name }} # [osx] + requires: + - bob-devel {{ bob_devel }}.* + - nose + - coverage + - sphinx + - sphinx_rtd_theme + +about: + home: https://www.idiap.ch/software/bob/ + license: BSD License + summary: CUHK Face Sketch FERET Database (CUFSF) + license_family: BSD -- GitLab