-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
112 lines (102 loc) · 5.05 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
language: python
cache: pip
matrix:
fast_finish: true
include:
- python: 2.7
- python: 3.5
- python: 3.6
- python: 3.7
dist: xenial
sudo: true
env:
global:
- GH_REF: [email protected]:smarie/python-vtypes.git
before_install:
# (a) linux dependencies
- sudo apt-get install pandoc
- sudo apt-get install ant
- sudo apt-get install ant-optional
install:
- pip list
# needs to be installed beforehand
- pip install setuptools_scm
- python ci_tools/py_install.py pip ci_tools/requirements-pip.txt
# this does not work anymore on python 2 so lets only do it when needed
- if [ "${TRAVIS_PYTHON_VERSION}" = "3.5" ]; then pip install mkdocs-material mkdocs; fi;
- |
if [ "${TRAVIS_PYTHON_VERSION}" = "2.7" ]; then
echo "No need to install enforce pytypes checktypes BUT need to install future"
pip install future
pip install enum34
else
pip install autoclass
pip install enforce
pip install pytypes
pip install checktypes
fi
# travis-specific installs
- pip install PyGithub # for ci_tools/github_release.py
- pip install codecov # See https://github.com/codecov/example-python.
- pip list
script:
# - coverage run tests.py
- pip install .
- python -c "import os; os.chdir('..'); import vtypes"
# ***tests***
# - coverage run tests.py
# - pytest --junitxml=reports/junit/junit.xml --html=reports/junit/report.html --cov-report term-missing --cov=./vtypes -v vtypes/tests/
# now done in a dedicated script to capture exit code 1 and transform it to 0
- chmod a+x ./ci_tools/run_tests.sh
- sh ./ci_tools/run_tests.sh
- python ci_tools/generate-junit-badge.py 100 # generates the badge for the test results and fail build if less than x%
after_success:
# ***reporting***
# - junit2html junit.xml testrun.html output is really not nice
- ant -f ci_tools/generate-junit-html.xml # generates the html for the test results. Actually we dont use it anymore
- codecov
#- pylint vtypes # note that at the moment the report is simply lost, we dont transform the result into anything
# ***documentation***
# - mkdocs build -f docs/mkdocs.yml
- mv reports/junit docs/ # not in site/ anymore so that we do not need to use --dirty (it breaks client-side search)
# mkdocs gh-deploy requires special care :
# ---grant the possibility to push on the repo---
- openssl aes-256-cbc -K $encrypted_07d7502bdcb6_key -iv $encrypted_07d7502bdcb6_iv -in ci_tools/github_travis_rsa.enc -out ci_tools/github_travis_rsa -d
# If the output file does not exist, that is because the secret is invalid. This can happen in forked repos so do not fail the build
- |
if [ -s "ci_tools/github_travis_rsa" ]; then
chmod 600 ci_tools/github_travis_rsa
eval `ssh-agent -s` # launch the authentication agent
ssh-add ci_tools/github_travis_rsa # register the decrypted key
git config user.name "Automatic Publish"
git config user.email "[email protected]"
git remote add gh-remote "${GH_REF}";
git fetch gh-remote && git fetch gh-remote gh-pages:gh-pages; # make sure we have the latest gh-remote
# push but only if this is not a build triggered by a pull request
if [ "${TRAVIS_PULL_REQUEST}" = "false" ] && [ "${TRAVIS_PYTHON_VERSION}" = "3.5" ]; then echo "Pushing to github"; PYTHONPATH=vtypes/ mkdocs gh-deploy -v -f docs/mkdocs.yml --remote-name gh-remote; git push gh-remote gh-pages; fi;
else
echo "File 'ci_tools/github_travis_rsa' has not been created, please check your encrypted repo token in .travis.yml, on the line starting with 'openssl aes-256-cbc...'"
fi
# -- create the _version.py file
- python ci_tools/write_version.py ./vtypes
deploy:
# Deploy on PyPI on tags
- provider: pypi
user: "smarie"
password:
secure: "NMq0dgrM36dJJWrKoWA0gG5l1wf59YqfIcvV45tTGo5498YUY+edchXmfo9xo43YE9FyiGR94RbvSItyvCDMI7T1kSzhlZIG8KF9I9j2wAsMCH2q/e02cRN7XoRPddGFVeLFuoOyxr7apd0JuuigiDJ/zKUjWYKHvW4vZamxo/TPSm677tEwxz2HZcX50ROoweUodjk+0PbkCk+3NGfO9g0J93DpG1ReuCZzKSNsCvAh3Q9x1Y4VSEluEU4h7iXU+eoYaZbt7Dm8GRrqMZa3qv4VO8dYLzwPyRAQ2xLh4um22/Xq1M9vvnLe0lzWRgyWtYY8qUyaOYlJEvMysBuUjZ1xpLQDBI67rP3uTb+KkzsSzMHRtn7ijLU+AEbuEeXuut1Ck2BOrITlIASqUjug9CdYOq4qKkaKg3+63k2lOEpnGNTQowQkJmNYb0zIeev0IfTF5O4e8QDbr3+tYoeJ2oq0yMdFet5NxBsnR7V9p+dCfW7BDLqsIXuLDTT27c8ZctqJEYH+BhcNdYzHm5GzXGyhu+0g3enXFZJyLA3eUdkHWBCCrFctaksrKhotCx3TyqxWyyEhwxnFzX8ZQwWCYA1Y6kzwfeXDqSjreKHAUaf9vG+TSh4JLQy2hvHfxjmJO6dXQ+cRp1ImrfTfuZQMphOHkKqoV7jKNVhdCLPtlKg="
on:
tags: true
python: 3.5 #only one of the builds have to be deployed
# server: https://test.pypi.org/legacy/
distributions: "sdist bdist_wheel"
# Create a github release on tags
- provider: script
script: python ci_tools/github_release.py -s $GITHUB_TOKEN --repo-slug smarie/python-vtypes -cf ./docs/changelog.md -d https://smarie.github.io/python-vtypes/changelog/ $TRAVIS_TAG
skip_cleanup: true
on:
tags: true
python: 3.5 #only one of the builds have to be deployed
notifications:
email:
on_success: never # options: [always|never|change] default: always