forked from Pyomo/pyomo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.travis.yml
123 lines (117 loc) · 6.4 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
branches:
only:
- master
cache: false
language: generic
services:
- docker
env:
global:
- DOCKERHUB_USERNAME=qkjqvazeqfjqftchxlgw
matrix:
- IMAGE_NAME=test-builds:python_3.7 CATEGORY="nightly"
- IMAGE_NAME=test-builds:python_3.6 CATEGORY="nightly"
- IMAGE_NAME=test-builds:python_3.6 CATEGORY="nightly" SLIM=1
- IMAGE_NAME=test-builds:python_3.5 CATEGORY="nightly"
- IMAGE_NAME=test-builds:python_2.7 CATEGORY="nightly" KEY_JOB=1
- IMAGE_NAME=test-builds:pypy_3 CATEGORY="nightly" DISABLE_COVERAGE=1
- IMAGE_NAME=test-builds:pypy_2 CATEGORY="nightly" DISABLE_COVERAGE=1
- IMAGE_NAME=test-builds:anaconda_3 CATEGORY="nightly" DISABLE_COVERAGE=1
- IMAGE_NAME=test-builds:anaconda_2 CATEGORY="nightly" DISABLE_COVERAGE=1
- IMAGE_NAME=test-builds:python_3.6 CATEGORY="parallel"
- IMAGE_NAME=test-builds:python_2.7 CATEGORY="parallel"
before_install:
- docker pull ${DOCKERHUB_USERNAME}/${IMAGE_NAME}
# (1) We are mounting the current directory onto the
# docker container and giving it a mount location with
# an identical name, which avoids issues with file
# paths in coverage reports.
# (2) We are starting a container in detached mode that
# runs a semi-infinite sleep call. This allows us to
# run separate docker exec commands that keep the state
# of the container between calls.
- export DOC_ID=`docker run -d -v $(pwd):$(pwd) -w $(pwd) ${DOCKERHUB_USERNAME}/${IMAGE_NAME} sleep 10000000000`
# used by codecov when uploading the coverage report
- export CI_ENV=`bash <(curl -s https://codecov.io/env)`
# enable tracking of coverage for subprocesses launched
# during tests
- export COVERAGE_PROCESS_START=${TRAVIS_BUILD_DIR}/coveragerc
- cp ${TRAVIS_BUILD_DIR}/.coveragerc ${COVERAGE_PROCESS_START}
- echo "data_file=${TRAVIS_BUILD_DIR}/.coverage" >> ${COVERAGE_PROCESS_START}
# commands prefixed by ${DOC} will execute inside the
# running docker container
- export DOC="docker exec ${CI_ENV} -e IMAGE_NAME -e COVERAGE_PROCESS_START ${DOC_ID}"
install:
- ${DOC} pip install -U pip setuptools wheel
- |
if [ -n "$SLIM" ]
then
${DOC} pip uninstall -y numpy scipy matplotlib numba \
mpi4py ipython openpyxl \
sympy pymysql pyodbc pyro4 pyyaml \
networkx xlrd pandas matplotlib dill
fi
- ${DOC} pip install nose coverage codecov
# Clone but don't install pyomo-model-libraries
- ${DOC} git clone --quiet https://github.com/Pyomo/pyomo-model-libraries.git
# Install PyUtilib (master branch)
- ${DOC} pip install --quiet git+https://github.com/PyUtilib/pyutilib
# Install this package
- ${DOC} python setup.py develop
# Finish setting up coverage tracking for subprocesses
- DOCKER_SITE_PACKAGES=`${DOC} python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"`
- |
if [ -z "$DISABLE_COVERAGE" ]
then
${DOC} bash -c "echo 'import coverage; coverage.process_startup()' > ${DOCKER_SITE_PACKAGES}/run_coverage_at_startup.pth"
fi
script:
- ${DOC} python --version
- ${DOC} pip --version
- ${DOC} bash -c 'echo CPLEX_VERSION="$CPLEX_VERSION"'
- ${DOC} bash -c 'echo CPLEX_AMPL_VERSION="$CPLEX_AMPL_VERSION"'
- ${DOC} bash -c 'echo GUROBI_AMPL_VERSION="$GUROBI_AMPL_VERSION"'
- ${DOC} bash -c 'echo BARON_VERSION="$BARON_VERSION"'
- ${DOC} bash -c 'echo GLPK_VERSION="$GLPK_VERSION"'
- ${DOC} bash -c 'echo IPOPT_VERSION="$IPOPT_VERSION"'
- ${DOC} bash -c 'echo CBC_VERSION="$CBC_VERSION"'
- ${DOC} bash -c 'echo GAMS_VERSION="$GAMS_VERSION"'
- ${DOC} bash -c 'echo GSL_VERSION="$GSL_VERSION"'
- ${DOC} bash -c 'echo GJH_VERSION="$GJH_VERSION"'
- ${DOC} bash -c 'echo GJH_ASL_JSON_VERSION="$GJH_ASL_JSON_VERSION"'
- ${DOC} pip list
- ${DOC} test.pyomo -v --cat=$CATEGORY pyomo `pwd`/pyomo-model-libraries
# Run documentation tests
- if [[ "$IMAGE_NAME" != "test-builds:python_3.7" ]]; then ${DOC} make -C doc/OnlineDocs doctest -d; fi
after_script:
# Kill the docker container
- docker kill ${DOC_ID}
after_success:
# Combine coverage reports over all subprocesses and upload
- ${DOC} find . -maxdepth 10 -name ".cov*"
- ${DOC} coverage combine
- ${DOC} codecov --env IMAGE_NAME -X gcov
# Trigger PyomoGallery build
- "if [ -n \"${KEY_JOB}\" ]; then curl -s -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Travis-API-Version: 3' -H 'Authorization: token 4DadIB521uUPyBXMtvQVOw' -d '{\"request\": {\"branch\": \"master\"}}' https://api.travis-ci.org/repo/Pyomo%2FPyomoGallery/requests; fi"
deploy:
- provider: pypi
server: https://testpypi.python.org/pypi # Updated
user: whart111
password:
secure: "bxNfz0XywTc4vL2M39eEeYvTzDIjhwddzHRljCPCkP8ANLuxh6DPxFvFZDNGw+TA/U0q7r7POuhloa1zen0WyrcoWtWmC4WlixNoJ5mIl1RWXqpUzV5VqReYfYDE6FJs9G0tCrcgF/vzyzajDH9atxUxCdAoWqUnOdx+XcOBarUuz5PTRbI+GLkI8IJCyOgS0khXvoLbj4qi+SW9aOS4EKTQMxv3EPy9V3HNNe4yzbmnCFfaEWUVCFVs5vH7x4WbD3CN2lyjaE5ZTQHrAx2GZtTgZWtyypmv0nfXQ49s32xw/CRb9POUUQ4IGQybAcD2bEJeqaV+6HB93yJVcy6gYCCm0WV++sL1gsD1vYcmtqpWloF4O/lnQkaW0fD4twJUjapXm8QqCFRtXBt7/DxL72vQu1MWbeBQs3Vxo+1xBqy64txhXmREeTEIBfvmTxMRkIvensxwh8uRlhd252iJQC2K6KlIcG5kyEbsAkQp42JPswqveIZb0DmsHZ3LC2fN+UJICI04+UKDnqISibrtjNtD3HiGkdj1OGyzv3tOZx4ZrfPXQ8o3CR+291SJ/ADZAyMrLoNI6rOl0z9IRyCLUViz3QPZz4g7ClZUoJ9Hm7y9/v3nQcIC3/D7G1QzyLCoRpHEwb6lifyp2o6W8MOcwZYs/Uv0saNYMnftRmVFxhY="
distributions: sdist --format=gztar bdist_wheel
on:
tags: false
branch: master
python: '2.7'
condition: '"$YAML" = "pyyaml"'
- provider: pypi
user: whart111
password:
secure: "bxNfz0XywTc4vL2M39eEeYvTzDIjhwddzHRljCPCkP8ANLuxh6DPxFvFZDNGw+TA/U0q7r7POuhloa1zen0WyrcoWtWmC4WlixNoJ5mIl1RWXqpUzV5VqReYfYDE6FJs9G0tCrcgF/vzyzajDH9atxUxCdAoWqUnOdx+XcOBarUuz5PTRbI+GLkI8IJCyOgS0khXvoLbj4qi+SW9aOS4EKTQMxv3EPy9V3HNNe4yzbmnCFfaEWUVCFVs5vH7x4WbD3CN2lyjaE5ZTQHrAx2GZtTgZWtyypmv0nfXQ49s32xw/CRb9POUUQ4IGQybAcD2bEJeqaV+6HB93yJVcy6gYCCm0WV++sL1gsD1vYcmtqpWloF4O/lnQkaW0fD4twJUjapXm8QqCFRtXBt7/DxL72vQu1MWbeBQs3Vxo+1xBqy64txhXmREeTEIBfvmTxMRkIvensxwh8uRlhd252iJQC2K6KlIcG5kyEbsAkQp42JPswqveIZb0DmsHZ3LC2fN+UJICI04+UKDnqISibrtjNtD3HiGkdj1OGyzv3tOZx4ZrfPXQ8o3CR+291SJ/ADZAyMrLoNI6rOl0z9IRyCLUViz3QPZz4g7ClZUoJ9Hm7y9/v3nQcIC3/D7G1QzyLCoRpHEwb6lifyp2o6W8MOcwZYs/Uv0saNYMnftRmVFxhY="
distributions: sdist --format=gztar bdist_wheel
on:
tags: true
branch: master
python: '2.7'
condition: '"$YAML" = "pyyaml"'