|
| 1 | +matrix: |
| 2 | + include: |
| 3 | + - dist: xenial |
| 4 | + os: linux |
| 5 | + - dist: trusty |
| 6 | + os: linux |
| 7 | + - dist: bionic |
| 8 | + os: linux |
| 9 | + - os: osx |
| 10 | + - os: windows |
1 | 11 | language: c |
2 | | -os: |
3 | | -- linux |
4 | | -- osx |
5 | | -git: |
6 | | - depth: 1 |
| 12 | +compiler: gcc |
7 | 13 |
|
8 | | -env: |
9 | | - global: |
10 | | - - HDF5_RELEASE_URL = "https://support.hdfgroup.org/ftp/HDF5/releases" |
11 | | - - HDF5_HOME="/usr" |
| 14 | +before_install: |
| 15 | + - export FILE_ROOT="hdf5" |
| 16 | + - export TESTS="True" |
| 17 | + - export BUILD="True" |
12 | 18 |
|
13 | | -before_install: |
14 | | - - chmod +x travis_setup.sh |
15 | | - - ./travis_setup.sh |
| 19 | + # Run instructions to install the C/C++ requirements (BUILD_HOME) set in place of PAHO_HOME/HDF5_HOME etc. |
| 20 | + # Files in this case are unzipped into cbuild within travis_setup.sh |
| 21 | + - if [[ $BUILD == "True" ]]; then |
| 22 | + chmod +x travis_setup.sh; |
| 23 | + ./travis_setup.sh; |
| 24 | + export BUILD_HOME=$TRAVIS_BUILD_DIR/cbuild |
| 25 | + export LIB="cmake/$FILE_ROOT/lib"; |
| 26 | + mkdir cmake |
| 27 | + else |
| 28 | + export LIB=""; |
| 29 | + fi |
16 | 30 |
|
17 | | -install: |
18 | | - # We do this conditionally because it saves us some downloading if the |
19 | | - # version is the same. |
20 | | - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then |
21 | | - wget https://repo.continuum.io/miniconda/Miniconda3-4.5.4-Linux-x86_64.sh -O miniconda.sh; |
| 31 | + - if [[ $TRAVIS_OS_NAME == "linux" ]]; then |
| 32 | + QLIBDIR=l64; OD=$L64; |
| 33 | + elif [[ $TRAVIS_OS_NAME == "osx" ]]; then |
| 34 | + QLIBDIR=m64; OD=$M64; |
| 35 | + elif [[ $TRAVIS_OS_NAME == "windows" ]]; then |
| 36 | + QLIBDIR=w64; OD=$W64; |
22 | 37 | else |
23 | | - wget https://repo.continuum.io/miniconda/Miniconda3-4.5.4-MacOSX-x86_64.sh -O miniconda.sh; |
| 38 | + echo "unknown OS ('$TRAVIS_OS_NAME')" >&2; exit 1; |
24 | 39 | fi |
25 | | - - bash miniconda.sh -b -p $HOME/miniconda |
26 | | - - ls /usr/local/lib |
27 | | - - export PATH="$HOME/miniconda/bin:$PATH" |
28 | | - - echo $LD_LIBRARY_PATH |
29 | | - - export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH |
30 | | - - hash -r |
31 | | - - conda config --set always_yes yes --set changeps1 no |
32 | | - - conda update -q conda |
33 | | - # Useful for debugging any issues with conda |
34 | | - - conda info -a |
35 | | - - if [ $TRAVIS_OS_NAME = linux ]; then |
36 | | - QLIBDIR=l64; |
37 | | - elif [ $TRAVIS_OS_NAME = osx ]; then |
38 | | - QLIBDIR=m64; |
39 | | - else |
40 | | - echo "unknown OS ('$TRAVIS_OS_NAME')" >&2; exit 1; |
41 | | - fi; export QLIBDIR |
42 | | - - conda install -c kx embedpy # grab kdb+ with conda |
43 | | - - cp -r $(conda info --base)/q q && export QHOME=$(pwd)/q && export PATH=$QHOME/$QLIBDIR:$PATH |
44 | | - # grab latest embedpy |
45 | | - - if [[ "x$QLIC_KC" != "x" ]]; then |
46 | | - echo -n $QLIC_KC |base64 --decode > q/kc.lic; |
| 40 | + |
| 41 | + - export LD_LIBRARY_PATH=$BUILD_HOME/lib:$LD_LIBRARY_PATH |
| 42 | + - export DYLD_LIBRARY_PATH=$BUILD_HOME/lib:$DYLD_LIBRARY_PATH |
| 43 | + - export PATH=$BUILD_HOME/lib:$PATH |
| 44 | + - export PATH=$BUILD_HOME/bin:$PATH |
| 45 | + - export PATH=$BUILD_HOME/include:$PATH |
| 46 | + - export QLIBDIR |
| 47 | + - mkdir qhome |
| 48 | + - export QHOME=$(pwd)/qhome |
| 49 | + - export PATH=$QHOME/$QLIBDIR:$PATH |
| 50 | + |
| 51 | + # Set up q for testing and execute tests on multiple |
| 52 | + - if [[ $TESTS == "True" && "x$OD" != "x" && "x$QLIC_KC" != "x" ]]; then |
| 53 | + curl -o qhome/q.zip -L $OD; |
| 54 | + unzip -d qhome qhome/q.zip; |
| 55 | + rm qhome/q.zip; |
| 56 | + echo -n $QLIC_KC |base64 --decode > qhome/kc.lic; |
| 57 | + else |
| 58 | + echo No kdb+, no tests; |
47 | 59 | fi |
48 | | - - mkdir build |
49 | | - - cd build |
50 | | - - cmake .. -DCMAKE_BUILD_TYPE=Release && make && make install |
51 | | - - cd .. |
52 | 60 |
|
53 | | -script: |
54 | | -- echo "Preparing version $TRAVIS_BRANCH-$TRAVIS_COMMIT" |
55 | | -- cd build |
56 | | -- tar -zcvf hdf5_$TRAVIS_OS_NAME-$TRAVIS_BRANCH.tgz hdf5 |
57 | | -- cd .. |
58 | | -- echo "Packaged as hdf5_$TRAVIS_OS_NAME-$TRAVIS_BRANCH.zip" |
59 | | -- if [[ "x$QLIC_KC" != "x" ]]; then |
60 | | - curl -fsSL -o test.q https://github.com/KxSystems/embedpy/raw/master/test.q; |
61 | | - q test.q tests/ -q; |
| 61 | + - if [[ $TRAVIS_OS_NAME == "windows" ]]; then |
| 62 | + export FILE_TAIL="zip"; |
| 63 | + else |
| 64 | + export FILE_TAIL="tgz"; |
| 65 | + fi |
| 66 | + - export FILE_NAME=$FILE_ROOT-$TRAVIS_OS_NAME-$TRAVIS_BRANCH.$FILE_TAIL |
62 | 67 |
|
63 | | - else |
64 | | - echo No kdb+, no tests; |
65 | | - fi |
| 68 | + # Make binaries for the library as appropriate |
| 69 | + - if [[ $BUILD == "True" && $TRAVIS_OS_NAME == "windows" ]]; then |
| 70 | + cd cmake && cmake -G "Visual Studio 15 2017 Win64" .. ; |
| 71 | + cmake --build . --config Release; |
| 72 | + cmake --build . --config Release --target install; |
| 73 | + cd ..; |
| 74 | + elif [[ $BUILD == "True" && ( $TRAVIS_OS_NAME == "linux" || $TRAVIS_OS_NAME == "osx" ) ]]; then |
| 75 | + cd cmake && cmake .. -DCMAKE_BUILD_TYPE=Release && make install && cd .. ; |
| 76 | + fi |
| 77 | + |
| 78 | +script: |
| 79 | + - if [[ $TESTS == "True" && "x$OD" != "x" && "x$QLIC_KC" != "x" ]]; then |
| 80 | + q test.q tests/ -q; |
| 81 | + fi |
| 82 | + - if [[ $TRAVIS_OS_NAME == "windows" && $BUILD == "True" ]]; then |
| 83 | + 7z a -tzip -r $FILE_NAME ./cmake/$FILE_ROOT/*; |
| 84 | + elif [[ $BUILD == "True" && ( $TRAVIS_OS_NAME == "linux" || $TRAVIS_OS_NAME == "osx" ) ]]; then |
| 85 | + tar -zcvf $FILE_NAME -C cmake/$FILE_ROOT .; |
| 86 | + elif [[ $TRAVIS_OS_NAME == "windows" ]]; then |
| 87 | + 7z a -tzip $FILE_NAME README.md install.bat LICENSE q examples; |
| 88 | + elif [[ $TRAVIS_OS_NAME == "linux" || $TRAVIS_OS_NAME == "osx" ]]; then |
| 89 | + tar -zcvf $FILE_NAME README.md install.sh LICENSE q examples; |
| 90 | + fi |
66 | 91 |
|
67 | 92 | deploy: |
68 | 93 | provider: releases |
69 | | - api_key: "$GH_APIKEY" |
70 | | - file_glob: true |
71 | | - file: build/hdf5_$TRAVIS_OS_NAME-$TRAVIS_BRANCH.tgz |
72 | | - skip_cleanup: true |
| 94 | + api_key: "$GITHUB_APIKEY" |
| 95 | + file: "$FILE_NAME" |
73 | 96 | on: |
74 | 97 | tags: true |
| 98 | + condition: $TRAVIS_OS_NAME = windows || $TRAVIS_OS_NAME = osx || ($TRAVIS_DIST = trusty && $TRAVIS_OS_NAME = linux) |
| 99 | + skip_cleanup: 'true' |
75 | 100 |
|
76 | 101 | notifications: |
77 | 102 | slack: |
78 | | - secure: "fDsGcgmkYyndvlN2NQlfqPrk0rfKVbDlp2Wg5pr/PZYCRY7rjXEwdby9T/tOpulQ6HXpdnqFN1zJ+5ih3XCwtLa4mPYRGWK3GvLNFvINTQDsYrCpgfQKxC6snBiGrUA0DoSAhS1nlB2igGoZSUSGi+sROsLiDn5aIqi3+Wz3JcFytISncWovO2bhedRjrFZXt4zmrDRpJ2BCShQdg2kppPGIDUHS0/xDElGtaHizLijeJjX/49xtABn7cLrv3wbVvejHU6yu5OdxOqtc98NYLV1lVPxiUIrjmvs/tlV4C6peGc1H9GioExThoWxW/KrMEL7biRxtTZzgqr+2W6+NWkzL74pMhqROOGvULH9DkfQxkjNNN6aLhN98oYswOgzg/UxM/F+Qolf948EWgcbg4USlAotd779YOfYPymYEeJlZTrvuYSazUdjUh6FkJtDYeiu7ZHkc75c4Fm8RNpxC6Kc4fO1Aq9ga0A8VoEzwIEscsMDvNC0hJjeFvglN0wie+jT23nNXnucTdgqxH9aCdub+ARcDEIXMS99WiYApHjbNK2WcTJYVDIKy1g1dO49oQMNLaHofaoO14OHw3OcWBlnHKhU2OWPuB0v0vqTeW8YAhGUewEmc5uwg6hYeVmE4ThDr4tiNDDyeCA6uTTN87oCguvlwrLF56vIEg0Sh4ok=" |
79 | | - |
| 103 | + secure: "Czkq4kk2Pl2TyWnW1y7KP7YLndCyb3Qai+ISPikf1VyBZp358apYRkiQZC7D8wwgCG4V+HjDj9+XJK9SBYyXGVsEnA+KEKS+9YG0K/UIuo6gv8IOj3962chaB4HfZn5LO34oLuhIjZJA0u8s5lPFoLJktfcHFvJibc6kXlET6ZMt/tZIHhztMGSyCqL46oidnTGZJFGO3Gb9FkBB8NOPduvROZAa9mF0CBNdd2gzig5lPG7eXjQSbKxVDbKWW81zEs8CSmM/guC+2Ar+rpPO4RAFq7UgrK6Gdg2GN863L0tMTttxDYdTLD+Bjk6mUZVnr5vPvtgvqKU801pjqtSEjNjeV3ZN+E19359mlH1eQ/9Uv5HaB05i3CIvWUTodp1eQDFGsvixQMnD9PrzD+SbY5v6oDg/R0+pEHhPhRJ6v23OAmFyU90kn3VQQIFDMKufKSJE4jItoUBXhmavSHHU/sysH1n8YXCU0kuOFtWIK+t5RIFrhYuDvVcz8O4xF95oCdKXjX/jWTO+qGc+YU9WKieCwS8PXwqBJJA4V5D4KkzmJAX5Y2SqODYF/KOD59AedX9u7nlnTD3EHK5iGnnIVhAKyJq0kwLp3ikP7uZupddMg/6J8s0zg3r61GvxXaoPDTAzTn7MDEX7HQonX+IiUvfRQFIuT3VmQvv+pEeoDOw=" |
| 104 | + |
| 105 | + |
0 commit comments