Unverified Commit 8626bdbf authored by Jonathan Crall's avatar Jonathan Crall
Browse files

Initial commit

parents
# Python CircleCI 2.0 configuration file
# Check https://circleci.com/docs/2.0/language-python/ for more details
#
# References:
# # how to setup multiple python versions
# https://stackoverflow.com/questions/948354/default-behavior-of-git-push-without-a-branch-specified
# https://github.com/adambrenecki/virtualfish/blob/aa3d6271bcb86ad27b6d24f96b5bd386d176f588/.circleci/config.yml
#
# # Multiple files for a checksum
# https://discuss.circleci.com/t/cant-checksum-multiple-files-with-slashes-in-the-file-path/20667/2
version: 2
workflows:
version: 2
test:
jobs:
- test-full-3.8
- test-full-3.7
- test-full-3.6
- test-full-3.5
- test-full-3.4
- test-full-2.7
- test-minimal-3.8
- test-minimal-3.7
- test-minimal-3.6
- test-minimal-3.5
- test-minimal-3.4
- test-minimal-2.7
- test-minimal-pypy3
- test-full-pypy3
jobs:
###########
# TEMPLATES
###########
.test-minimal-template: &test-minimal-template
environment:
# Setting the python executable environ allows template reuse for pypy
- PYTHON_EXE: python
docker:
- image: circleci/python
steps:
- checkout
# ### INITIALIZE AND CACHE REQUIREMENTS ###
- restore_cache:
keys:
- v2-dependencies-{{ checksum "requirements/runtime.txt" }}-{{ checksum "requirements/tests.txt" }}
- run:
name: install dependencies
command: |
$PYTHON_EXE -m venv venv || virtualenv -v venv # first command is python3 || second is python2
. venv/bin/activate
# The "minimal" tests install barebones requirements
pip install -r requirements/tests.txt
pip install -r requirements/runtime.txt
pip install .
- save_cache:
paths:
- ./venv
key: v2-dependencies-{{ checksum "requirements/runtime.txt" }}-{{ checksum "requirements/tests.txt" }}
# ### RUN TESTS ###
- run:
name: run tests
command: |
. venv/bin/activate
python run_tests.py
- store_artifacts:
path: test-reports
destination: test-reports
.test-full-template: &test-full-template
environment:
- PYTHON_EXE: python
docker:
- image: circleci/python
steps:
- checkout
# ### INITIALIZE AND CACHE REQUIREMENTS ###
- restore_cache:
keys:
- v2-dependencies-{{ checksum "requirements/runtime.txt" }}-{{ checksum "requirements/optional.txt" }}-{{ checksum "requirements/tests.txt" }}
- run:
name: install dependencies
command: |
$PYTHON_EXE -m venv venv || virtualenv -v venv # first command is python3 || second is python2
. venv/bin/activate
# The "full" dependency install
pip install -r requirements.txt
pip install .
- save_cache:
paths:
- ./venv
key: v2-dependencies-{{ checksum "requirements/runtime.txt" }}-{{ checksum "requirements/optional.txt" }}-{{ checksum "requirements/tests.txt" }}
# ### RUN TESTS ###
- run:
name: run tests
command: |
. venv/bin/activate
python run_tests.py
- store_artifacts:
path: test-reports
destination: test-reports
###################################
### INHERIT FROM BASE TEMPLATES ###
###################################
# Define tests fo the other python verisons using the "test3.6" template
# and indicating what needs to be modified.
#
# All we need to do is change the base docker image so python is the
# version we want we can reuse everything else from the template
test-full-3.8:
<<: *test-full-template
docker:
- image: circleci/python:3.8
working_directory: ~/repo-full-38
test-full-3.7:
<<: *test-full-template
docker:
- image: circleci/python:3.7
working_directory: ~/repo-full-37
test-full-3.6:
<<: *test-full-template
docker:
- image: circleci/python:3.5
working_directory: ~/repo-full-36
test-full-3.5:
<<: *test-full-template
docker:
- image: circleci/python:3.5
working_directory: ~/repo-full-35
test-full-3.4:
<<: *test-full-template
docker:
- image: circleci/python:3.4
working_directory: ~/repo-full-34
test-full-2.7:
<<: *test-full-template
docker:
- image: circleci/python:2.7
working_directory: ~/repo-full-27
# ------------
test-minimal-3.8:
<<: *test-minimal-template
docker:
- image: circleci/python:3.8
working_directory: ~/repo-minimal-38
test-minimal-3.7:
<<: *test-minimal-template
docker:
- image: circleci/python:3.7
working_directory: ~/repo-minimal-37
test-minimal-3.6:
<<: *test-minimal-template
docker:
- image: circleci/python:3.6
working_directory: ~/repo-minimal-36
test-minimal-3.5:
<<: *test-minimal-template
docker:
- image: circleci/python:3.5
working_directory: ~/repo-minimal-35
test-minimal-3.4:
<<: *test-minimal-template
docker:
- image: circleci/python:3.4
working_directory: ~/repo-minimal-34
test-minimal-2.7:
<<: *test-minimal-template
docker:
- image: circleci/python:2.7
working_directory: ~/repo-minimal-27
# --- pypy ----
test-minimal-pypy3:
<<: *test-minimal-template
docker:
- image: pypy:3
environment:
- PYTHON_EXE: pypy3
working_directory: ~/repo-minimal-pypy3
test-full-pypy3:
<<: *test-full-template
docker:
- image: pypy:3
environment:
- PYTHON_EXE: pypy3
working_directory: ~/repo-full-pypy3
heredoc:
docker:
- image: pypy:3
working_directory: ~/dev-only-not-a-real-job
steps:
- |
__heredoc__="
docker run -v $(pwd):/io -it pypy:3 bash
cd /io
pypy3 -m venv venv
. venv/bin/activate
# The "minimal" tests install barebones requirements
pip install -r requirements/tests.txt
pip install -r requirements/runtime.txt
pip install -e .
./run_doctests.sh || echo "pypy failed, but this is allowed"
./run_tests.sh || echo "pypy failed, but this is allowed"
"
[run]
branch = True
source = liberator
[report]
exclude_lines =
pragma: no cover
.* # pragma: no cover
.* # nocover
def __repr__
raise AssertionError
raise NotImplementedError
if 0:
if trace is not None
verbose = .*
^ *raise
^ *pass *$
if _debug:
if __name__ == .__main__.:
.*if six.PY2:
omit =
liberator/tests/*
liberator/_win32_links.py
liberator/__main__.py
*/setup.py
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover
.hypothesis/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
docs/build/
# PyBuilder
target/
# IPython Notebook
.ipynb_checkpoints
# pyenv
.python-version
# celery beat schedule file
celerybeat-schedule
# dotenv
.env
# virtualenv
venv/
ENV/
# Spyder project settings
.spyderproject
# Rope project settings
.ropeproject
.pytest_cache
profile_output.*
_skbuild
pip-wheel-metadata/
env:
global:
- secure: "jmHlQx8VVgO5i6q2ajtIayNiK8ekeoI8CLq1rno20zYUAd2xm4me8QVI0/Kuo2FKmg0GwRB14MdjNCUQNILIDZfzmrjnTuMTHiJjnTwWPMZcCbtc6fE1XQxnGs7IUhtMLfD2TTJrOvsKdqDFi8Z3CMC9v8gh+xFepeBxYhUdpRooW727oUGnracTos+wp1jVVcCiqXjR/kdA0WaZp9FEPU+kZ3NaLcXtjLhM60reIaEhC7e/dzX84heIOP/YfquBDqArH+tUXPwmlwNi3j8jv/A9yO02Fb6c3xyTGdROCjYXy2fXxKt5d0NvELU97F8SXkTPG3Z7hDSZJ33OYukq4pvPovlDBHDN7Sr+RjYuCaNesU07ngaOLdQgqC9TzgpbAF/mXij1q2+qWYy9X0xXLC1R30wmg4X3StFZqUT8J4BCshk+7QR3vNx7e6lroJgHrnIexGQwv1F0SQThDFEP0wfBNmcQeA2tkgpuMH9USj2N6nMRPoIYA5BTVSK3Gdwcua1H6kFWv7bWOj5ADaVDCmd1SfChwQ9tQ23JBcSFxnXc5KXfaJuwLByHyYxqKc+Mwds3GtaHLCWvDEJU96GQUSl52G7MsSctXhSmouIIY4VXDBy58iYEkhzbPrXqlcj50f/CfNmuWV1XQPofgGR1ClYq63K8Z6ARnknRxzEvU9Q="
- secure: "Rm7BUT1vZe/OyRpl/Y5UiE8MgRMzYkwOoWOemLWVuqpfI4EdCfrthEIG/RwGiD1JGCmM6qOTJXvwNlAccn3+cowo/MOFtscr+dDAPv79d6Zgk8SFgcpuOcWtv6vzZ0zMrTS3aynPM4ZAXSnfDbRw3X+XUdN1I7LGhMVW4ccUQnjQD6WYj5eGxgC6hacIarDpPrUDKpcrIK3vACFNrl9cAon2ao43YUAtYXGnM4l9+mdF6mBHalilJQJDgRGicEXRMKr8PnpoaUrvKfeoZbUIDkjyEAiSyfdnXQdv3yzSYlxWmFh98nns+SGlvkA2TuqXuM6W3icwlVYhv/AZWFUkBxXxwHB+OlBRONxc03L06BeVlznnoOECXLxxgXqukJFCSa0o+9VxkVTg6AOMnUs1mmUZse9H/FlGT2uuetq3Ha40wDXvH6BN+1gbBJfe+dYODMTdm3MCk+2z95NlPaqQpYtMAnTsXMN4PkL72hV3N0ASJxG22SK7fFFrnABT31K7R3W/OCNX6KR+SUGdXPrfmNmGh7x/iP6L1gkl2xe+t3z6iy5M0zDXxZPBV9hXOU0jjoK1jl5tHo2ZeNdSmOdZF5s7VaJ4yEDqE0NniYA3Wa5s7EvCOdDdf+itXHW7x0defkA3RfPqPxNmsC7d0FFX7zP54VLhwJuZmvnmWUgeq+Y="
- secure: "pEFlv1zsFWsV5X3BwG/Wt7ejrcLbL/YK0oUZBcpZUgCnYa3u+T9aCID/s/Uw/UGR2nVE3+FK914837tKN4N0+I6jYbS111aB/mbQcgAJp/N+LmnGqH9ngNdRE347WZcOnwgPHWpoXGJ0QYZCV2U9KuvfGxwDrASAAZApGNokLbUER6JdcPyTSKLUF1EkCnZZRaOL5m4il5Kk4nl54aOl+KWrwASzH7wV6YJUf9xZTHnxMcKLChRIClCReoIveOionba6qv5211wknOS4FPXCRHig27kbnr3cJcwETM9SCD4d8GnkKZq+AAu5b207p9mkGbNF4NuU19iDihp0g4Kyqs0qg1ZtsquoZd7UBcPPqC7l+hhJdYC17t5U/9QCGi7qYDRMqw20kn80LbvmSexAoPrQK3xMCTNdxZZF3WfbXTrpkN0A6Wp2kh7dNkfVfoU5UPVulYlUkrzWCuQtziiMHLOvp0S2URLhMW1uDTK3isJSriL6SlEFkruwr/zwV1HjPIeW7Tj4PJ4gmc3UL++nkISHJAfAtj/6w9RBp40LgfinvvK0Sjy4twnY1f+By93MlnFpTxFBkJYCzmbR7he2SR7RJSXSEwObnIkHIguGXkIy4LM725BFJ8piSSNPM2e8BihGlgAke3W72jnmzf239vsQNh6tZYwIlcnpBrQGzyo="
language: python
sudo: false
cache:
apt: true
directories:
- $HOME/.pip-cache
- $HOME/gpg_install_prefix
- $HOME/.cache/pip
- $HOME/download
python:
- "2.7"
- "3.5"
- "3.6"
- "3.7"
- "3.8"
#
before_install:
- pip install pip -U
- pip install -r requirements.txt -U
install:
- travis_retry pip install -e .
script:
- travis_wait ./run_tests.py --network
after_success:
- codecov
- gpg --version
- gpg2 --version
- export GPG_EXECUTABLE=gpg2
- openssl version
- |
__heredoc__='''
# THE SCRIPT IN THIS HEREDOC IS USED TO SETUP SECRET REPO VARIABLES
#
# Load or generate secrets
source $(secret_loader.sh)
echo $TWINE_USERNAME
echo $TWINE_PASSWORD
echo $CI_GITHUB_SECRET
# In your repo directory run the command to ensure travis recognizes the repo
# It will say: Detected repository as <user>/<repo>, is this correct? |yes|
# Answer yes before running the encrypt commands.
travis status
# encrypt relevant travis variables (requires travis cli)
#sudo apt install ruby ruby-dev -y
#sudo gem install travis
SECURE_TWINE_USERNAME=$(travis encrypt --no-interactive TWINE_USERNAME=$TWINE_USERNAME)
SECURE_TWINE_PASSWORD=$(travis encrypt --no-interactive TWINE_PASSWORD=$TWINE_PASSWORD)
SECURE_CI_GITHUB_SECRET=$(travis encrypt --no-interactive CI_GITHUB_SECRET=$CI_GITHUB_SECRET)
echo "
Add the following lines to your .travis.yml
env:
global:
- secure: $SECURE_TWINE_USERNAME
- secure: $SECURE_TWINE_PASSWORD
- secure: $SECURE_CI_GITHUB_SECRET
"
# HOW TO ENCRYPT YOUR SECRET GPG KEY
IDENTIFIER="travis-ci-Erotemic"
KEYID=$(gpg --list-keys --keyid-format LONG "$IDENTIFIER" | head -n 2 | tail -n 1 | awk '{print $1}' | tail -c 9)
echo "KEYID = $KEYID"
# Export plaintext gpg public keys, private keys, and trust info
mkdir -p dev
gpg --armor --export-secret-keys $KEYID > dev/travis_secret_gpg_key.pgp
gpg --armor --export $KEYID > dev/travis_public_gpg_key.pgp
gpg --export-ownertrust > dev/gpg_owner_trust
# Encrypt gpg keys and trust with CI secret
TSP=$CI_GITHUB_SECRET openssl enc -aes-256-cbc -md MD5 -pass env:TSP -e -a -in dev/travis_public_gpg_key.pgp > dev/travis_public_gpg_key.pgp.enc
TSP=$CI_GITHUB_SECRET openssl enc -aes-256-cbc -md MD5 -pass env:TSP -e -a -in dev/travis_secret_gpg_key.pgp > dev/travis_secret_gpg_key.pgp.enc
TSP=$CI_GITHUB_SECRET openssl enc -aes-256-cbc -md MD5 -pass env:TSP -e -a -in dev/gpg_owner_trust > dev/gpg_owner_trust.enc
echo $KEYID > dev/public_gpg_key
source $(secret_unloader.sh)
# Look at what we did, clean up, and add it to git
ls dev/*.enc
rm dev/gpg_owner_trust dev/*.pgp
git status
git add dev/*.enc
git add dev/public_gpg_key
''' # <hack vim "regex" parser> '
- |
# Install a more recent version of GPG
# https://gnupg.org/download/
export GPG_INSTALL_PREFIX=$HOME/gpg_install_prefix
export LD_LIBRARY_PATH=$GPG_INSTALL_PREFIX/lib:$LD_LIBRARY_PATH
export PATH=$GPG_INSTALL_PREFIX/bin:$PATH
export CPATH=$GPG_INSTALL_PREFIX/include:$CPATH
export GPG_EXECUTABLE=$GPG_INSTALL_PREFIX/bin/gpg
ls $GPG_INSTALL_PREFIX
ls $GPG_INSTALL_PREFIX/bin || echo "no bin"
# try and have travis cache this
if [[ ! -f "$GPG_INSTALL_PREFIX/bin/gpg" ]]; then
# This part of the script installs a newer version of GPG on the CI
# machine so we can sign our releases.
mkdir -p $GPG_INSTALL_PREFIX
echo $GPG_INSTALL_PREFIX
OLD=$(pwd)
cd $GPG_INSTALL_PREFIX
pip install liberator
ERROR_FPATH=$(python -c "import liberator as ub; print(ub.grabdata(
'https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.36.tar.bz2',
hash_prefix='6e5f853f77dc04f0091d94b224cab8e669042450f271b78d0ea0219',
dpath=ub.ensuredir('$HOME/.pip-cache'), verbose=0))")
GCRYPT_FPATH=$(python -c "import liberator as ub; print(ub.grabdata(
'https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.8.5.tar.bz2',
hash_prefix='b55e16e838d1b1208e7673366971ae7c0f9c1c79e042f41c03d1',
dpath=ub.ensuredir('$HOME/.pip-cache'), verbose=0))")
KSBA_CRYPT_FPATH=$(python -c "import liberator as ub; print(ub.grabdata(
'https://gnupg.org/ftp/gcrypt/libksba/libksba-1.3.5.tar.bz2',
hash_prefix='60179bfd109b7b4fd8d2b30a3216540f03f5a13620d9a5b63f1f95',
dpath=ub.ensuredir('$HOME/.pip-cache'), verbose=0))")
ASSUAN_FPATH=$(python -c "import liberator as ub; print(ub.grabdata(
'https://gnupg.org/ftp/gcrypt/libassuan/libassuan-2.5.3.tar.bz2',
hash_prefix='e7ccb651ea75b07b2e687d48d86d0ab83cba8e2af7f30da2aec',
dpath=ub.ensuredir('$HOME/.pip-cache'), verbose=0))")
NTBLTLS_FPATH=$(python -c "import liberator as ub; print(ub.grabdata(
'https://gnupg.org/ftp/gcrypt/ntbtls/ntbtls-0.1.2.tar.bz2',
hash_prefix='54468208359dc88155b14cba37773984d7d6f0f37c7a4ce13868d',
dpath=ub.ensuredir('$HOME/.pip-cache'), verbose=0))")
NPTH_FPATH=$(python -c "import liberator as ub; print(ub.grabdata(
'https://gnupg.org/ftp/gcrypt/npth/npth-1.6.tar.bz2',
hash_prefix='2ed1012e14a9d10665420b9a23628be7e206fd9348111ec751349b',
dpath=ub.ensuredir('$HOME/.pip-cache'), verbose=0))")
GPG_FPATH=$(python -c "import liberator as ub; print(ub.grabdata(
'https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.2.17.tar.bz2',
hash_prefix='a3cd094addac62b4b4ec1683005a2bec761ea2aacf6daf904316b',
dpath=ub.ensuredir('$HOME/.pip-cache'), verbose=0))")
tar xjf $ERROR_FPATH
tar xjf $GCRYPT_FPATH
tar xjf $KSBA_CRYPT_FPATH
tar xjf $ASSUAN_FPATH
tar xjf $NTBLTLS_FPATH
tar xjf $NPTH_FPATH
tar xjf $GPG_FPATH
(cd libgpg-error-1.36 && ./configure --prefix=$GPG_INSTALL_PREFIX && make install)
(cd libgcrypt-1.8.5 && ./configure --prefix=$GPG_INSTALL_PREFIX && make install)
(cd libksba-1.3.5 && ./configure --prefix=$GPG_INSTALL_PREFIX && make install)
(cd libassuan-2.5.3 && ./configure --prefix=$GPG_INSTALL_PREFIX && make install)
(cd ntbtls-0.1.2 && ./configure --prefix=$GPG_INSTALL_PREFIX && make install)
(cd npth-1.6 && ./configure --prefix=$GPG_INSTALL_PREFIX && make install)
(cd gnupg-2.2.17 && ./configure --prefix=$GPG_INSTALL_PREFIX && make install)
echo "GPG_EXECUTABLE = '$GPG_EXECUTABLE'"
cd $OLD
fi
# Decrypt and import GPG Keys / trust
- $GPG_EXECUTABLE --version
- openssl version
- $GPG_EXECUTABLE --list-keys
- TSP=$CI_GITHUB_SECRET openssl enc -aes-256-cbc -md MD5 -pass env:TSP -d -a -in dev/travis_public_gpg_key.pgp.enc | $GPG_EXECUTABLE --import
- TSP=$CI_GITHUB_SECRET openssl enc -aes-256-cbc -md MD5 -pass env:TSP -d -a -in dev/gpg_owner_trust.enc | $GPG_EXECUTABLE --import-ownertrust
- TSP=$CI_GITHUB_SECRET openssl enc -aes-256-cbc -md MD5 -pass env:TSP -d -a -in dev/travis_secret_gpg_key.pgp.enc | $GPG_EXECUTABLE --import
- $GPG_EXECUTABLE --list-keys
- MB_PYTHON_TAG=$(python -c "import setup; print(setup.MB_PYTHON_TAG)")
- VERSION=$(python -c "import setup; print(setup.VERSION)")
- |
pip install twine
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
pip install six pyopenssl ndg-httpsclient pyasn1 -U --user
pip install requests[security] twine --user
elfi
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
pip install six twine
pip install --upgrade pyOpenSSL
fi
# Package and publish to pypi (if on release)
- |
echo "TRAVIS_BRANCH = $TRAVIS_BRANCH"
KEYID=$(cat dev/public_gpg_key)
echo "KEYID = '$KEYID'"
if [[ "$TRAVIS_BRANCH" == "release" ]]; then
export CURRENT_BRANCH=$TRAVIS_BRANCH
TAG_AND_UPLOAD=yes
else
TAG_AND_UPLOAD=no
fi
MB_PYTHON_TAG=$MB_PYTHON_TAG \
USE_GPG=True \
GPG_KEYID=$KEYID \
CURRENT_BRANCH=$TRAVIS_BRANCH \
TWINE_PASSWORD=$TWINE_PASSWORD \
TWINE_USERNAME=$TWINE_USERNAME \
GPG_EXECUTABLE=$GPG_EXECUTABLE \
DEPLOY_BRANCH=release \
TAG_AND_UPLOAD=$TAG_AND_UPLOAD \
./publish.sh
Liberator - static code extractor for Python
--------------------------------------------
|GitlabCIPipeline| |GitlabCICoverage| |Pypi| |Downloads|
Liberator is a Python library that "liberates" (i.e. statically extracts) class
/ function source code from an existing python library into a single standalone
module.
It works by statically parsing the code for the class / function definition and
then recursively parsing and extracting all missing dependencies.
..The main webpage for this project is: https://gitlab.kitware.com/python/liberator
.. |Pypi| image:: https://img.shields.io/pypi/v/liberator.svg
:target: https://pypi.python.org/pypi/liberator
.. |Downloads| image:: https://img.shields.io/pypi/dm/liberator.svg
:target: https://pypistats.org/packages/liberator
.. |ReadTheDocs| image:: https://readthedocs.org/projects/liberator/badge/?version=latest
:target: http://liberator.readthedocs.io/en/latest/
.. # See: https://ci.appveyor.com/project/jon.crall/liberator/settings/badges
.. .. |Appveyor| image:: https://ci.appveyor.com/api/projects/status/py3s2d6tyfjc8lm3/branch/master?svg=true
.. :target: https://ci.appveyor.com/project/jon.crall/liberator/branch/master
.. |GitlabCIPipeline| image:: https://gitlab.kitware.com/python/liberator/badges/master/pipeline.svg
:target: https://gitlab.kitware.com/python/liberator/-/jobs
.. |GitlabCICoverage| image:: https://gitlab.kitware.com/python/liberator/badges/master/coverage.svg?job=coverage
:target: https://gitlab.kitware.com/python/liberator/commits/master
environment:
matrix:
# For Python versions available on Appveyor, see
# http://www.appveyor.com/docs/installed-software#python
# The list here is complete (excluding Python 2.6, which
# isn't covered by this document) at the time of writing.
- PYTHON: "C:\\Python35"
- PYTHON: "C:\\Python27"
#- PYTHON: "C:\\Python36"
#- PYTHON: "C:\\Python33"
#- PYTHON: "C:\\Python33-x64"
# DISTUTILS_USE_SDK: "1"
#- PYTHON: "C:\\Python34"
- PYTHON: "C:\\Python27-x64"
#- PYTHON: "C:\\Python34-x64"
# DISTUTILS_USE_SDK: "1"
- PYTHON: "C:\\Python35-x64"
install:
# We need wheel installed to build wheels
- "%PYTHON%\\python.exe -m pip install pip -U"
- "%PYTHON%\\python.exe -m pip install -r requirements.txt -U"
- "%PYTHON%\\python.exe -m pip install -e ."
build: off
test_script:
# Put your test command here.
# If you don't need to build C extensions on 64-bit Python 3.3 or 3.4,
# you can remove "build.cmd" from the front of the command, as it's
# only needed to support those cases.
# Note that you must use the environment variable %PYTHON% to refer to
# the interpreter you're using - Appveyor does not do anything special
# to put the Python version you want to use on PATH.
- "%PYTHON%\\python.exe -m pytest --network"
after_test:
# This step builds your wheels.
# Again, you only need build.cmd if you're building C extensions for