Skip to content

Commit

Permalink
CI/CD: Support for automation (#63)
Browse files Browse the repository at this point in the history
To hook up to the new CI/CD system, the following changes were made:

- Added/updated conda recipe
- Every commit is now a version thanks to versioneer
- Removed `install_requires` from `setup.py` (dependencies now handled by conda recipe)
- Standardized travis configuration to use latest development builds of QIIME 2

Pair programmed with: @jairideout, @ebolyen, and @thermokarst
  • Loading branch information
thermokarst committed Apr 20, 2017
1 parent e482731 commit 37690a9
Show file tree
Hide file tree
Showing 10 changed files with 2,422 additions and 29 deletions.
4 changes: 4 additions & 0 deletions .coveragerc
Expand Up @@ -3,8 +3,12 @@ branch = True
omit =
*/tests*
*/__init__.py
q2_feature_classifier/_version.py
versioneer.py

[report]
omit =
*/tests*
*/__init__.py
q2_feature_classifier/_version.py
versioneer.py
1 change: 1 addition & 0 deletions .gitattributes
@@ -0,0 +1 @@
q2_feature_classifier/_version.py export-subst
38 changes: 16 additions & 22 deletions .travis.yml
@@ -1,31 +1,25 @@
dist: trusty
sudo: false
language: python
env:
- PYTHON_VERSION=3.5
before_install:
- wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
- chmod +x miniconda.sh
- ./miniconda.sh -b
- export PATH=/home/travis/miniconda3/bin:$PATH
- export MPLBACKEND='Agg'
- wget -q https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
- export MINICONDA_PREFIX="$HOME/miniconda"
- bash miniconda.sh -b -p $MINICONDA_PREFIX
- export PATH="$MINICONDA_PREFIX/bin:$PATH"
- conda config --set always_yes yes
- conda update -q conda
- conda info -a
- git clone https://github.com/qiime2/q2lint ../q2lint
install:
# TODO some of the dependencies here aren't directly required by this
# package. For now, install them this way for faster build times. Ultimately
# we can let conda do dependency resolution when there are conda packages for
# the various QIIME 2 projects. Until then, avoid installing heavyweight
# dependencies via pip.
- conda create --yes -n test-env -c biocore python=$PYTHON_VERSION scikit-bio jupyter click pytest pytest-cov scikit-learn
- conda create -q -n test-env --file https://raw.githubusercontent.com/qiime2/environment-files/master/latest/staging/qiime2-latest-conda-linux-64.txt
- source activate test-env
- conda install --yes -c bioconda blast=2.6.0
- conda install --yes -c bioconda vsearch=2.3.2
- pip install https://github.com/qiime2/qiime2/archive/master.zip
- pip install https://github.com/qiime2/q2-types/archive/master.zip
- pip install flake8 coveralls
- pip install .
- 'echo "backend: Agg" > matplotlibrc'
- git clone https://github.com/qiime2/q2lint
- conda install -q pytest-cov
- pip install -q flake8 coveralls
- python setup.py install
script:
- py.test --cov=q2_feature_classifier
- flake8
- python q2lint/q2lint.py
- python ../q2lint/q2lint.py
- py.test --cov=q2_feature_classifier
after_success:
- coveralls
2 changes: 2 additions & 0 deletions MANIFEST.in
@@ -0,0 +1,2 @@
include versioneer.py
include q2_feature_classifier/_version.py
39 changes: 39 additions & 0 deletions ci/recipe/meta.yaml
@@ -0,0 +1,39 @@
{% set data = load_setup_py_data() %}
{% set version = data.get('version') or 'placehold' %}
{% set release = '.'.join(version.split('.')[:2]) %}

package:
name: q2-feature-classifier
version: {{ version }}

source:
path: ../..

build:
script: python setup.py install

requirements:
build:
- python 3.5*
- setuptools

run:
- python 3.5*
- setuptools
- scikit-learn
- scikit-bio
- biom-format >=2.1.5,<2.2.0
- blast 2.6.0
- vsearch
- qiime2 {{ release }}.*
- q2-types {{ release }}.*

test:
imports:
- q2_feature_classifier
- qiime2.plugins.feature_classifier

about:
home: https://qiime2.org
license: BSD-3-Clause
license_family: BSD
5 changes: 3 additions & 2 deletions q2_feature_classifier/__init__.py
Expand Up @@ -7,9 +7,10 @@
# ----------------------------------------------------------------------------

import importlib
import pkg_resources
from ._version import get_versions

__version__ = pkg_resources.get_distribution('q2-feature-classifier').version
__version__ = get_versions()['version']
del get_versions

importlib.import_module('q2_feature_classifier.classifier')
importlib.import_module('q2_feature_classifier._cutter')
Expand Down

0 comments on commit 37690a9

Please sign in to comment.