diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..e4c0e1472456b1a82fd11720543d0570c1bef660 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,129 @@ +# 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 diff --git a/conda/conda_build_config.yaml b/conda/conda_build_config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..7c9e4ffd87a73e6d49982fb5f7e14ebf47786de5 --- /dev/null +++ b/conda/conda_build_config.yaml @@ -0,0 +1,223 @@ +macos_min_version: + - 10.9 +macos_machine: + - x86_64-apple-darwin13.4.0 +MACOSX_DEPLOYMENT_TARGET: + - 10.9 +CONDA_BUILD_SYSROOT: # [osx] + - /opt/MacOSX10.9.sdk # [osx] +# This helps CMAKE find the sysroot. See +# https://cmake.org/cmake/help/v3.11/variable/CMAKE_OSX_SYSROOT.html +SDKROOT: # [osx] + - /opt/MacOSX10.9.sdk # [osx] +# makes autotools verbose +VERBOSE_AT: + - V=1 +# makes cmake verbose +VERBOSE_CM: + - VERBOSE=1 + +# the blas implementations that we build against +blas_impl: + - mkl + +pin_run_as_build: + libboost: + max_pin: x.x.x + py_boost: + max_pin: x.x.x + boost: + max_pin: x.x.x + +## the dependencies that we build against multiple versions +python: + - 3.6 + +zip_keys: + - # [win] + - vc # [win] + - c_compiler # [win] + - cxx_compiler # [win] + - fortran_compiler_version # [win] + - python # [win] + + +# Here is the version of dependencies are used when building packages (build +# and host requirements). We keep a list of **all of them** here to make sure +# everything goes as expected in our conda build process. For the version of +# packages that are used for testing packages, see the recipe of bob-devel. +# The version here do not necessarily match the versions in bob-devel. + +# This version of bob-devel will be used at test time of packages: +bob_devel: + - 2018.12.29 + +# This version of beat-devel will be used at test time of packages. Notice it +# uses bob-devel and should have a version that is greater or equal its value +beat_devel: + - 2018.12.29 + +# The build time only dependencies (build requirements). +# Updating these to the latest version all the time is OK and a good idea. +# These versions should match the versions inside bob-devel as well (if they +# overlap) so update them in both places. +cmake: + - 3.12.2 +pkg_config: + - 0.29.2 +cython: + - 0.28.1 + +# The dependencies that we link against (host requirements). +# Ideally we want to build against the oldest possible version of packages when +# we are linking against them. It is best to keep this in sync with: +# https://github.com/AnacondaRecipes/aggregate/blob/master/conda_build_config.yaml +numpy: + - 1.14.5 +boost: + - 1.65.1 +cyvlfeat: + - 0.4.6 +ffmpeg: + - 3.4 +freetype: + - 2.8 +giflib: + - 5.1.4 +hdf5: + - 1.10.1 +jpeg: + - 9b +libblitz: + - 1.0.1 +libmatio: + - 1.5.11 +libogg: + - 1.3.2 +libpng: + - 1.6.35 +libsvm: + - 3.22 +libtiff: + - 4.0.9 +mkl: + - 2018.0.3 +openfst: + - 1.6.1 +sox: + - 14.4.2 +speex: + - 1.2.0 +speexdsp: + - 1.2rc3 +sqlite: + - 3.20.1 +vlfeat: + - 0.9.21 +xz: + - 5.2.3 +zlib: + - 1.2.11 + +# The dependencies that are needed for runtime only (run requirements). +# These versions **should** match the versions inside bob-devel recipe. +caffe: + - 1.0 +click: + - 6.7 +click_plugins: + - 1.0.3 +coverage: + - 4.5.1 +dlib: + - 19.7 +docopt: + - 0.6.2 +jinja2: + - 2.10 +kaldi: + - 2017.03.13 +matplotlib: + - 2.2.3 +menpo: + - 0.8.1 +menpofit: + - 0.5.0 +mne: + - 0.15.2 +mr_developer: + - 1.38 +nose: + - 1.3.7 +opencv: + - 3.3.1 +pillow: + - 5.2.0 +pyedflib: + - 0.1.11 +pytorch: + - 0.4.1 +pyyaml: + - 3.13 +requests: + - 2.19.1 +schema: + - 0.6.7 +scikit_image: + - 0.14 +scikit_learn: + - 0.19.2 +scipy: + - 1.1.0 +setuptools: + - 40.2.0 +six: + - 1.11.0 +sphinx: + - 1.8.1 +sphinx_rtd_theme: + - 0.4.1 +sqlalchemy: + - 1.2.11 +tabulate: + - 0.8.2 +tensorflow: + - 1.9.0 +torchvision: + - 0.2.1 +zc_buildout: + - 2.12.2 +zc_recipe_egg: + - 2.0.7 + +# The dependencies that are needed for runtime only (run requirements) of BEAT +# packages. These versions **should** match the versions inside beat-devel +# recipe. +docker_py: + - 3.6.0 +jsonschema: + - 2.6.0 +oset: + - 0.1.3 +python_graphviz: + - 0.8.4 +pyzmq: + - 17.1.2 +simplejson: + - 3.16.0 +termcolor: + - 1.1.0 +sphinxcontrib_programoutput: + - 0.11 +sphinxcontrib_httpdomain: + - 1.7.0 +nodejs: + - 8.9.3 +flask: + - 1.0.2 +flask_cors: + - 3.0.7 +flask_restful: + - 0.3.6 +psycopg2: + - 2.7.6.1 diff --git a/conda/meta.yaml b/conda/meta.yaml new file mode 100644 index 0000000000000000000000000000000000000000..d246b348a439706b5767c0b68b3e34f0870c2ee1 --- /dev/null +++ b/conda/meta.yaml @@ -0,0 +1,60 @@ +{% set name = 'bob.devtools' %} + +package: + name: {{ name }} + version: {{ environ.get('BOB_PACKAGE_VERSION', '0.0.1') }} + +build: + entry_points: + - bdt = bob.devtools.scripts.bdt:main + number: {{ environ.get('BOB_BUILD_NUMBER', 0) }} + run_exports: + - {{ pin_subpackage(name) }} + script: + - cd {{ environ.get('RECIPE_DIR') + '/..' }} + {% if environ.get('BUILD_EGG') %} + - python setup.py sdist --formats=zip + {% endif %} + - python setup.py install --single-version-externally-managed --record record.txt + # installs the documentation source, readme and license to share/doc + - install -d ${PREFIX}/share/doc/{{ name }} + - install -m 644 -D README.rst ${PREFIX}/share/doc/{{ name }} + - install -m 644 -D LICENSE ${PREFIX}/share/doc/{{ name }} + - find doc -type f -exec install -Dm 644 "{}" "${PREFIX}/share/doc/{{ name }}/{}" \; + +requirements: + host: + - python {{ python }} + - setuptools {{ setuptools }} + run: + - python + - setuptools + - click + - click-plugins + - conda-build + - pytz + - python-dateutil + - gitpython + - python-gitlab + - requests + +test: + requires: + - sphinx + - sphinx_rtd_theme + imports: + - {{ name }} + commands: + - bdt -h + - bdt -? + - bdt --help + - bdt lasttag --help + - bdt changelog --help + - bdt release --help + - sphinx-build -aEW ${PREFIX}/share/doc/{{ name }}/doc {{ environ.get('RECIPE_DIR') + '/../sphinx' }} + +about: + home: https://www.idiap.ch/software/bob/ + license: BSD 3-Clause + summary: Tools for development and CI integration of Bob packages + license_family: BSD diff --git a/setup.py b/setup.py index a4160852f92081e45d75a84a1412f61ed2c3a4a3..2ca9417cf117ad8787f5cd8feb2f8dad7a34a5a0 100644 --- a/setup.py +++ b/setup.py @@ -10,8 +10,9 @@ requires = [ 'click', 'click-plugins', 'conda-build', - 'python-gitlab', 'requests', + 'gitpython', + 'python-gitlab', ] setup(