|
1 |
| -os: linux |
| 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 |
2 | 11 | language: c
|
3 | 12 | compiler: gcc
|
4 | 13 |
|
5 |
| -stage: |
6 |
| - - build Release |
| 14 | +before_install: |
| 15 | + - export FILE_ROOT="prometheus-exporter" |
| 16 | + - export TESTS="False" |
| 17 | + - export BUILD="False" |
7 | 18 |
|
8 |
| -jobs: |
9 |
| - include: |
10 |
| - # LINUX BUILD |
11 |
| - - stage: build Release |
12 |
| - os: linux |
13 |
| - script: |
14 |
| - tar -zcvf prom-exporter-$TRAVIS_OS_NAME-$TRAVIS_BRANCH.tgz LICENSE README.md *.q example/ |
15 |
| - deploy: |
16 |
| - provider: releases |
17 |
| - api_key: "$GITHUB_APIKEY" |
18 |
| - file: prom-exporter-$TRAVIS_OS_NAME-$TRAVIS_BRANCH.tgz |
19 |
| - on: |
20 |
| - tags: true |
21 |
| - skip_cleanup: 'true' |
22 |
| - |
23 |
| - # OSX BUILD |
24 |
| - - stage: build Release |
25 |
| - os: osx |
26 |
| - script: |
27 |
| - tar -zcvf prom-exporter-$TRAVIS_OS_NAME-$TRAVIS_BRANCH.tgz LICENSE README.md *.q example/ |
28 |
| - deploy: |
29 |
| - provider: releases |
30 |
| - api_key: "$GITHUB_APIKEY" |
31 |
| - file: prom-exporter-$TRAVIS_OS_NAME-$TRAVIS_BRANCH.tgz |
32 |
| - on: |
33 |
| - tags: true |
34 |
| - skip_cleanup: 'true' |
35 |
| - |
36 |
| - # WINDOWS BUILD |
37 |
| - - stage: build Release |
38 |
| - os: windows |
39 |
| - script: |
40 |
| - 7z a -tzip prom-exporter-$TRAVIS_OS_NAME-$TRAVIS_BRANCH.zip LICENSE README.md *.q example |
41 |
| - deploy: |
42 |
| - provider: releases |
43 |
| - api_key: "$GITHUB_APIKEY" |
44 |
| - file: prom-exporter-$TRAVIS_OS_NAME-$TRAVIS_BRANCH.zip |
45 |
| - on: |
46 |
| - tags: true |
47 |
| - skip_cleanup: 'true' |
| 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 |
| 30 | + |
| 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; |
| 37 | + else |
| 38 | + echo "unknown OS ('$TRAVIS_OS_NAME')" >&2; exit 1; |
| 39 | + fi |
| 40 | + |
| 41 | + - export QLIBDIR |
| 42 | + - mkdir qhome; |
| 43 | + - export QHOME=$(pwd)/qhome; |
| 44 | + - export PATH=$QHOME/$QLIBDIR:$PATH; |
| 45 | + |
| 46 | + # Set up q for testing and execute tests on multiple |
| 47 | + - if [[ $TESTS == "True" && "x$OD" != "x" && "x$QLIC_KC" != "x" ]]; then |
| 48 | + export LD_LIBRARY_PATH=$BUILD_HOME/lib:$LD_LIBRARY_PATH; |
| 49 | + export DYLD_LIBRARY_PATH=$BUILD_HOME/lib:$LD_LIBRARY_PATH; |
| 50 | + export PATH=$BUILD_HOME/lib:$PATH; |
| 51 | + curl -o qhome/q.zip -L $OD; |
| 52 | + unzip -d qhome qhome/q.zip; |
| 53 | + rm qhome/q.zip; |
| 54 | + echo -n $QLIC_KC |base64 --decode > qhome/kc.lic; |
| 55 | + else |
| 56 | + echo No kdb+, no tests; |
| 57 | + fi |
| 58 | + |
| 59 | + - if [[ $TRAVIS_OS_NAME == "windows" ]]; then |
| 60 | + export FILE_TAIL="zip"; |
| 61 | + else |
| 62 | + export FILE_TAIL="tgz"; |
| 63 | + fi |
| 64 | + - export FILE_NAME=$FILE_ROOT-$TRAVIS_OS_NAME-$TRAVIS_BRANCH.$FILE_TAIL |
| 65 | + |
| 66 | + # Make binaries for the library as appropriate |
| 67 | + - if [[ $BUILD == "True" && $TRAVIS_OS_NAME == "windows" ]]; then |
| 68 | + cd cmake && cmake -G "Visual Studio 15 2017 Win64" .. ; |
| 69 | + export MSBUILD_PATH="/c/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/MSBuild/15.0/Bin/"; |
| 70 | + export PATH=$MSBUILD_PATH:$PATH; |
| 71 | + MSBuild.exe INSTALL.vcxproj //m //nologo //verbosity:normal //p:Configuration=Release //p:Platform=x64; |
| 72 | + cd ..; |
| 73 | + elif [[ $BUILD == "True" && ( $TRAVIS_OS_NAME == "linux" || $TRAVIS_OS_NAME == "osx" ) ]]; then |
| 74 | + cd cmake && cmake .. -DCMAKE_BUILD_TYPE=Release && make install && cd .. ; |
| 75 | + fi |
| 76 | + |
| 77 | +script: |
| 78 | + - if [[ $TESTS == "True" && "x$OD" != "x" && "x$QLIC_KC" != "x" ]]; then |
| 79 | + q test.q tests/ -q; |
| 80 | + fi |
| 81 | + - if [[ $TRAVIS_OS_NAME == "windows" && $BUILD == "True" ]]; then |
| 82 | + 7z a -tzip -r $FILE_NAME ./cmake/$FILE_ROOT/*; |
| 83 | + elif [[ $BUILD == "True" && ( $TRAVIS_OS_NAME == "linux" || $TRAVIS_OS_NAME == "osx" ) ]]; then |
| 84 | + tar -zcvf $FILE_NAME -C cmake/$FILE_ROOT .; |
| 85 | + elif [[ $TRAVIS_OS_NAME == "windows" ]]; then |
| 86 | + 7z a -tzip $FILE_NAME README.md install.bat LICENSE q examples; |
| 87 | + elif [[ $TRAVIS_OS_NAME == "linux" || $TRAVIS_OS_NAME == "osx" ]]; then |
| 88 | + tar -zcvf $FILE_NAME README.md install.sh LICENSE q examples; |
| 89 | + fi |
| 90 | + |
| 91 | +deploy: |
| 92 | + provider: releases |
| 93 | + api_key: "$GITHUB_APIKEY" |
| 94 | + file: "$FILE_NAME" |
| 95 | + on: |
| 96 | + tags: true |
| 97 | + condition: $TRAVIS_OS_NAME = windows || $TRAVIS_OS_NAME = osx || ($TRAVIS_DIST = trusty && $TRAVIS_OS_NAME = linux) |
| 98 | + skip_cleanup: 'true' |
0 commit comments