[segyio] 296/376: Build & distribute binaries with Travis
Jørgen Kvalsvik
jokva-guest at moszumanska.debian.org
Wed Sep 20 08:04:47 UTC 2017
This is an automated email from the git hooks/post-receive script.
jokva-guest pushed a commit to branch debian
in repository segyio.
commit 8aef04c17e6f9062abe7b15467b444a0144c0858
Author: Jørgen Kvalsvik <jokva at statoil.com>
Date: Wed May 3 12:40:20 2017 +0200
Build & distribute binaries with Travis
Build and upload python wheel packages to pypi with Travis. This uses
the multibuild scripts and python environments, docker, and drops the
use of conda both for OS X and linux.
---
.travis.yml | 114 +++++++++++++++++++++++++++++++++++++++++++-----------------
config.sh | 5 +++
2 files changed, 88 insertions(+), 31 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index cb41244..889a537 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,11 +1,14 @@
-language: generic
+language: python
env:
- - BUILD_TYPE=RELEASE; PYTHON=2.7;
- - BUILD_TYPE=RELEASE; PYTHON=3.5;
- - BUILD_TYPE=DEBUG; PYTHON=2.7;
- - BUILD_TYPE=DEBUG; PYTHON=3.5;
-
+ global:
+ - UNICODE_WIDTH=32
+ - PLAT=x86_64
+ matrix:
+ - MB_PYTHON_VERSION=2.7
+ - MB_PYTHON_VERSION=3.4
+ - MB_PYTHON_VERSION=3.5
+ - MB_PYTHON_VERSION=3.6
os:
- linux
- osx
@@ -14,54 +17,69 @@ compiler:
- gcc
- clang
+services: docker
+sudo: required
+
matrix:
+ fast_finish: true
exclude:
- os: osx
- compiler: gcc
- os: linux
compiler: clang
+ include:
+ - os: osx
+ language: generic
+ env: MB_PYTHON_VERSION=2.7
+ - os: osx
+ language: generic
+ env: MB_PYTHON_VERSION=3.4
+ - os: osx
+ language: generic
+ env: MB_PYTHON_VERSION=3.5
+ - os: osx
+ language: generic
+ env: MB_PYTHON_VERSION=3.6
addons:
apt:
sources:
- sourceline: 'ppa:sisib/ci-backports'
+ - george-edison55-precise-backports # cmake 3
packages:
- valgrind
- cppcheck
+ - cmake
+ - cmake-data
+
+before_install:
+ - source multibuild/common_utils.sh
+ - source multibuild/travis_steps.sh
+ - before_install
install:
- # Valgrind is experimental(ish) on MacOS with false positives on among others printf
- #- if [[ "$TRAVIS_OS_NAME" == "osx" && "$BUILD_TYPE" == "DEBUG" ]]; then
- # brew update;
- # brew install --HEAD valgrind;
- # fi
+ # on os x, python is set up in a virtualenv, but cmake tends to find a
+ # system-installed, incompatible python lib.
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
- export CONDA_OS=MacOSX;
- brew update && brew install cppcheck;
- else
- export CONDA_OS=Linux;
- fi
- - if [[ "$PYTHON" == "2.7" ]]; then
- wget https://repo.continuum.io/miniconda/Miniconda2-latest-${CONDA_OS}-x86_64.sh -O miniconda.sh;
- else
- wget https://repo.continuum.io/miniconda/Miniconda3-latest-${CONDA_OS}-x86_64.sh -O miniconda.sh;
+ brew update && brew install cppcheck;
+ if [[ -n "${MB_PYTHON_VERSION+1}" ]]; then
+ prefix=`python-config --prefix`;
+ pypath=$prefix/lib/libpython$MB_PYTHON_VERSION.dylib;
+ pylib="-DPYTHON_LIBRARY=$pypath";
+ fi
fi
- - bash miniconda.sh -b -p $HOME/miniconda
- - export PATH="$HOME/miniconda/bin:$PATH"
- - hash -r
- - conda config --set always_yes yes --set changeps1 no
- - conda update -q conda
- - conda info -a
-
- - conda install numpy cmake
+ - pip install numpy --upgrade
before_script:
- enabled="-DBUILD_PYTHON=OFF -DBUILD_MEX=OFF"
- - if [[ -n "${PYTHON+1}" ]]; then enabled="$enabled -DBUILD_PYTHON=ON"; fi
+ - if [[ -n "${MB_PYTHON_VERSION+1}" ]]; then
+ enabled="$enabled -DBUILD_PYTHON=ON";
+ fi
- cmake --version
- mkdir build
- pushd build
- - cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_SHARED_LIBS=ON $enabled ..
+ - cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
+ -DBUILD_SHARED_LIBS=ON
+ $pylib $enabled ..
- cppcheck --language=c
--std=c99
--enable=style,portability,performance,warning
@@ -71,5 +89,39 @@ before_script:
--inline-suppr
--project=compile_commands.json
--error-exitcode=1
+ - popd
script:
+ - pushd build
- make && ctest --output-on-failure
+ - cat python/setup.py
+ - popd
+ - BUILD_COMMANDS=build_bdist_wheel build_wheel build/python
+ - install_run $PLAT
+ - mv wheelhouse build/python/dist
+
+before_deploy:
+ - pushd build/python
+
+after_deploy:
+ - popd
+
+deploy:
+ - provider: pypi # source distribution (done from linux python 3.6 only)
+ skip_cleanup: true
+ skip_upload_docs: true
+ user: statoil-travis
+ password:
+ secure: WHeA5x2iiXzjYXdgZeJU6l4fawRi/umqH1713QAj0RPZBAnD+9m8Zrpn2UWn9+1dtx6xUMkNg3ZTueVKTKo0f2i/4o0xkzQ5BW11cetCWusV2Dku1btPTA5Fhs+dvPDlL3m496a3Bq/A/fRDj5JLDiiPibvpM01lEBxFKYooWGQ75HVuhnAt57vabD45gDpIE7N23+So4+9bsG/nT/ZlgoaS01uLTdlnf6tjNgP0/UBkonmedC62iVvCu7itfHZMTY2rSeww7KBMI3s7Gz+cyx9IbI3shbDpdJGHpM8Qe+1oFi31Z+DylWQA5SkpHlLMUP+zjMKLF+1hXGNUeJuyadIFrxzbS3vTV2yRPa6ol8q+bX7YLy0xNLSE8aMm54LKgXfRKLc3G8d3I33oEfyk5hygY8iEX728r2TsARslYxOF3sZqJvY8lx4GBEDiXxX2GJvGCPy/Uby786uWnZlFFkDERk3n [...]
+ on:
+ condition: $TRAVIS_OS_NAME == linux && $MB_PYTHON_VERSION == 3.6
+ tags: true
+
+ - provider: pypi # upload built wheels
+ skip_cleanup: true
+ skip_upload_docs: true
+ user: statoil-travis
+ distributions: build
+ password:
+ secure: WHeA5x2iiXzjYXdgZeJU6l4fawRi/umqH1713QAj0RPZBAnD+9m8Zrpn2UWn9+1dtx6xUMkNg3ZTueVKTKo0f2i/4o0xkzQ5BW11cetCWusV2Dku1btPTA5Fhs+dvPDlL3m496a3Bq/A/fRDj5JLDiiPibvpM01lEBxFKYooWGQ75HVuhnAt57vabD45gDpIE7N23+So4+9bsG/nT/ZlgoaS01uLTdlnf6tjNgP0/UBkonmedC62iVvCu7itfHZMTY2rSeww7KBMI3s7Gz+cyx9IbI3shbDpdJGHpM8Qe+1oFi31Z+DylWQA5SkpHlLMUP+zjMKLF+1hXGNUeJuyadIFrxzbS3vTV2yRPa6ol8q+bX7YLy0xNLSE8aMm54LKgXfRKLc3G8d3I33oEfyk5hygY8iEX728r2TsARslYxOF3sZqJvY8lx4GBEDiXxX2GJvGCPy/Uby786uWnZlFFkDERk3n [...]
+ on:
+ tags: true
diff --git a/config.sh b/config.sh
new file mode 100644
index 0000000..0323392
--- /dev/null
+++ b/config.sh
@@ -0,0 +1,5 @@
+function run_tests {
+ python -c "import segyio; print(segyio.__version__)"
+ cp -r ../test-data .
+ python -m unittest discover -vs ../python/test -p "*.py"
+}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/segyio.git
More information about the debian-science-commits
mailing list