1language: c
2sudo: required
3python: "3.6"
4
5env:
6  global:
7  # SSHHOST
8  - secure: "NEXUEA+ccm/I21ujCPuKYIHFb8Gogunr3nYysCRpTBNT40PsU9VFIy5vbmMxPAkCaMwk8XZ0rMHE3uaNGbBAGfoDL9v0Ban5wG/jA1JkmOAWUpFrUsbQeejXNRA04QcZ/4VeL6TgFegV2T6V0tLB4M6/X316dIPhS9Tat1ZUC8s="
9  # SSHUSER
10  - secure: "bYHqhcYYuSbciQa5mBqMxs3CbJkrxxD7/G4zDW2war1IcMh8AC/KPeoYIuhd/L2Mg9+tP++xCznKUJzX85Hu+8EyrMGkC/6zWpGYgyO27DH7wl+9AJjR191WJKkg+S6OqZmb/5v0rdJMDnGOZHrRVB3Vec9dBT+jDTQbyxrckxE="
11  # DEPLOY_TO directory
12  - secure: "PMp93w9HAYd0pR4aw2LT1sMIVmA06f01Xq2jaGW2iy74n3GrqBYe7H9aMR0WD1S6KH9sFydqFI11bCpwUQXPopl+8MPA34AS7V2gaxDUdE+UZnKKXpKV6KRPRp/txlryuEGspjFJM0bo5g1H5lPBSBFj8PB1Bf6BiloGl8TTuiY="
13
14services:
15  - docker
16
17matrix:
18  include:
19    - stage: "Build & Deploy"
20
21      compiler: "gcc"
22      dist: xenial
23      env:
24        - ARCH=arm
25        - OS_VERSION=jessie
26        - EXTRA_SSH=-oHostKeyAlgorithms=+ssh-dss
27    - compiler: "gcc"
28      dist: xenial
29      env:
30        - ARCH=arm
31        - OS_VERSION=stretch
32        - EXTRA_SSH=-oHostKeyAlgorithms=+ssh-dss
33    - compiler: "gcc"
34      os: linux
35      env:
36        - PLATFORM=linux BITS=64 HOST=x86_64
37        # TODO do `check` or `check_hw` here too, not just `check_sw` (as part of `coverage`)
38        - CHECK_RULE=coverage GCOV=1
39        - PKG_RULE=gzip
40        - PYPI=yes
41        - COVERITY_SCAN_PROJECT_NAME="$TRAVIS_REPO_SLUG"
42        - COVERITY_SCAN_BRANCH_PATTERN="master"
43        - COVERITY_SCAN_NOTIFICATION_EMAIL="robin.getz@analog.com"
44        - COVERITY_SCAN_BUILD_COMMAND_PREPEND="mkdir build && cd build && cmake -DWITH_EXAMPLES=ON .."
45        - COVERITY_SCAN_BUILD_COMMAND="make"
46        # The COVERITY_SCAN_TOKEN
47        - secure: "QQt2l9IVo0xXWLx7Xqgz/4Iezj7YroY3MKfmG+OhtzkMRx4prhx32/07JMNAcYx6mQrccyZkBNzpYuXlfIZjFL3xDxDj5+iKv5XXpJbRFQGhc5xZtAlzOIqHNMcFc0Aj8J2mZwKfSaDnBdf+nMgKcmn46pYbpJOmPe9iEfeLvvg="
48    - compiler: "clang"
49      os: linux
50      env: LDIST=DO_NOT_DEPLOY
51    - compiler: "gcc"
52      os: linux
53      dist: xenial
54      env:
55        - EXTRA_SSH=-oHostKeyAlgorithms=+ssh-dss
56        # GH_DOC_TOKEN used to deploy docs
57        - secure: "OrwnYeUITY2R7pn11WHqsO7c6F9fRY7G5fOh98GGXnw7dAIoSvUhjUE70ehaBzLH0CyO83KgaiyACP8eqRx9BYUd1McrqTFDmYJNVR+Wk01SSjJxaXzU4RMsJPhXH9l5U7BEH5dVk/IFLLaCwYnc35mlADHE2KCGNanvtnRU0gU="
58    - os: linux
59      env:
60        - OS_TYPE=centos_docker
61        - OS_VERSION=6
62        - EXTRA_SSH=-oHostKeyAlgorithms=+ssh-dss
63    - os: linux
64      env:
65        - OS_TYPE=centos_docker
66        - OS_VERSION=7
67        - EXTRA_SSH=-oHostKeyAlgorithms=+ssh-dss
68    - os: linux
69      dist: bionic
70      env:
71        - EXTRA_SSH=-oHostKeyAlgorithms=+ssh-dss
72    - os: linux
73      env:
74        - OS_TYPE=centos_docker
75        - OS_VERSION=8
76        - EXTRA_SSH=-oHostKeyAlgorithms=+ssh-dss
77    - os: linux
78      env:
79        - OS_TYPE=ubuntu_docker
80        - OS_VERSION=focal
81        - EXTRA_SSH=-oHostKeyAlgorithms=+ssh-dss
82    - compiler: "gcc"
83      os: osx
84      osx_image: xcode10.1
85      env:
86        - EXTRA_SSH=-oHostKeyAlgorithms=+ssh-dss
87    - compiler: "gcc"
88      os: osx
89      osx_image: xcode11
90      env:
91        - EXTRA_SSH=-oHostKeyAlgorithms=+ssh-dss
92
93    - stage: "Trigger Next In Pipeline"
94      env:
95        - TRIGGER_NEXT_BUILD=true
96
97addons:
98  ssh_known_hosts:
99    secure: "q0dQ9MrhnOCo031McxSdQIqw4N6tEyAZLq7mdbWkAJcXOh/CX58NjFvcdSfamleDUYRmg7KpCZPPgnbx2JtqVvWJv8aNnr67CE1GIjRP1Fxh2WaKS+VK+I6rro7GwCO2C9d+uffCt63LfZKqddF1T7vMI2IgHcu9irc5LCuw6Wo="
100
101before_install:
102  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
103      if [[ "$ARCH" == "arm" ]] ; then
104        ./CI/travis/setup_qemu_for_arm.sh ${OS_VERSION} ;
105      else
106        ./CI/travis/before_install_linux "$OS_TYPE" ;
107      fi
108    fi
109  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then ./CI/travis/before_install_darwin ; fi
110  - if [[ -n "$COVERITY_SCAN_PROJECT_NAME" ]] ; then echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca- ; fi
111  - if [ -n "$COVERITY_SCAN_PROJECT_NAME" -a "$TRAVIS_EVENT_TYPE" == "cron" ] ; then curl -s 'https://scan.coverity.com/scripts/travisci_build_coverity_scan.sh' | bash || true ; fi
112
113  - mkdir -p $TRAVIS_BUILD_DIR/build
114  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then mkdir -p $TRAVIS_BUILD_DIR/build_tar ; fi
115
116script:
117  - if [[ "$ARCH" == "arm" && "$TRAVIS_OS_NAME" == "linux" ]]; then ${TRAVIS_BUILD_DIR}/CI/travis/make_linux_qemu ; fi
118  - if [[ -z "$ARCH" && "$TRAVIS_OS_NAME" == "linux" ]]; then ${TRAVIS_BUILD_DIR}/CI/travis/make_linux libiio "$OS_TYPE" ; fi
119  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then ${TRAVIS_BUILD_DIR}/CI/travis/make_darwin; fi
120  - if [[ "$TRIGGER_NEXT_BUILD" == "true" ]]; then ${TRAVIS_BUILD_DIR}/CI/travis/after_deploy; fi
121
122notifications:
123  email:
124    on_success: change
125    on_failure: always
126
127before_deploy:
128  - . ${TRAVIS_BUILD_DIR}/CI/travis/before_deploy
129  - openssl aes-256-cbc -K $encrypted_48a720578612_key -iv $encrypted_48a720578612_iv -in ${TRAVIS_BUILD_DIR}/CI/travis/deploy.rsa.enc -out /tmp/deploy.rsa -d
130  - eval "$(ssh-agent -s)"
131  - chmod 600 /tmp/deploy.rsa
132  - ssh-add /tmp/deploy.rsa
133  - if [[ "$PYPI" == "yes" ]]; then cd "build/bindings/python"; fi
134deploy:
135  - provider: releases
136    api_key:
137      secure: Bl7sfWp796+D7cF99+YdmbQjr5stXh4H/4hN2L5FNL0FEHL4XnIscSqySgy2NNmcqWF4Mz5WNXMZ9M8rYSNAiOndcaBYB+xvesAUbIdncwswgTNn2cj6yQbv0yR9qVUdoyczvZMK1vIc6GtKWWkh0AmgR04cAFffU3fr+78JHIw=
138    file:
139      - "${RELEASE_PKG_FILE_DEB}"
140      - "${RELEASE_PKG_FILE_RPM}"
141      - "${RELEASE_PKG_FILE_TGZ}"
142    skip_cleanup: true
143    on:
144      repo: analogdevicesinc/libiio
145      tags: true
146      condition: "($CC = gcc) && ($TRAVIS_OS_NAME = linux)"
147  - provider: releases
148    api_key:
149      secure: Bl7sfWp796+D7cF99+YdmbQjr5stXh4H/4hN2L5FNL0FEHL4XnIscSqySgy2NNmcqWF4Mz5WNXMZ9M8rYSNAiOndcaBYB+xvesAUbIdncwswgTNn2cj6yQbv0yR9qVUdoyczvZMK1vIc6GtKWWkh0AmgR04cAFffU3fr+78JHIw=
150    file:
151      - "${RELEASE_PKG_FILE_PKG}"
152      - "${RELEASE_PKG_FILE_TGZ}"
153    skip_cleanup: true
154    on:
155      repo: analogdevicesinc/libiio
156      tags: true
157      condition: "$TRAVIS_OS_NAME = osx"
158  - provider: script
159    skip_cleanup: true
160    script:
161      - ${TRAVIS_BUILD_DIR}/CI/travis/deploy
162    on:
163      condition: "($CC = gcc) && ($TRAVIS_OS_NAME = linux)"
164      all_branches: true
165  - provider: script
166    skip_cleanup: true
167    script:
168      - ${TRAVIS_BUILD_DIR}/CI/travis/deploy
169    on:
170      condition: "$TRAVIS_OS_NAME = osx"
171      all_branches: true
172  - provider: pypi
173    skip_cleanup: true
174    on:
175      tags: true
176      condition: "$PYPI = yes"
177    username: __token__
178    password:
179      secure: KfORvnPyLlMANLpcwJjcO44Kt6meP614omJk2GloD+B51SuV64O6N31VDOTi2xqioEk9Cajq7tmNte5YoHVUjL9iWFsBblpzxZoXcy40dn4pFN0kMiE8scszxckbDwuBZhokUVZ2fhfLKf/8xORcwjS3vKqSj5HwQKKvVgukSbQ=
180    distributions: sdist
181