travis: Add .travis.yml
authorMarek Vasut <marek.vasut@gmail.com>
Fri, 10 Jan 2020 01:06:45 +0000 (02:06 +0100)
committerOleksij Rempel <linux@rempel-privat.de>
Fri, 10 Apr 2020 12:58:09 +0000 (13:58 +0100)
Add basic Travis-CI .travis.yml, to let Travis CI run automated build tests.

Change-Id: Iceae442c13f30b57842b300c0920108b614c75f7
Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
Reviewed-on: http://openocd.zylin.com/5414
Tested-by: jenkins
Reviewed-by: Oleksij Rempel <linux@rempel-privat.de>
.travis.yml [new file with mode: 0644]

diff --git a/.travis.yml b/.travis.yml
new file mode 100644 (file)
index 0000000..da6b94c
--- /dev/null
@@ -0,0 +1,91 @@
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright Marek Vasut <marex@denx.de>
+
+# OpenOCD on Travis CI - https://travis-ci.org/
+
+sudo: required
+dist: bionic
+
+arch:
+  - amd64
+  - arm64
+  - ppc64le
+  - s390x
+
+addons:
+  apt:
+    sources:
+      - sourceline: 'ppa:ubuntu-toolchain-r/test'
+      - sourceline: 'deb https://apt.llvm.org/bionic/ llvm-toolchain-bionic-9 main'
+        key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
+    packages:
+      - libftdi-dev
+      - libhidapi-dev
+      - libjaylink-dev
+
+env:
+  - CC=gcc-9
+  - CC=clang-9
+
+language: c
+
+git:
+  depth: 1
+  autocrlf: input
+
+script:
+  - $mingw64 ${CC} --version
+  - $mingw64 env
+  - $mingw64 ./bootstrap
+  - $mingw64 ./configure
+  - $mingw64 make
+
+before_install:
+  - |-
+    case $TRAVIS_OS_NAME in
+      linux)
+        sudo apt install ${CC} libusb-1.0-0-dev
+        ;;
+      osx)
+        brew install libtool automake libusb libusb-compat hidapi libftdi
+        ;;
+      windows)
+        [[ ! -f C:/tools/msys64/msys2_shell.cmd ]] && rm -rf C:/tools/msys64
+        choco uninstall -y mingw
+        choco upgrade --no-progress -y msys2
+        export msys2='cmd //C RefreshEnv.cmd '
+        export msys2+='& set MSYS=winsymlinks:nativestrict '
+        export msys2+='& C:\\tools\\msys64\\msys2_shell.cmd -defterm -no-start'
+        export mingw64="$msys2 -mingw64 -full-path -here -c \$\* --"
+        export msys2+=" -msys2 -c \$\* --"
+        $msys2 pacman --sync --noconfirm --needed mingw-w64-x86_64-toolchain autoconf autoconf-archive automake automake-wrapper binutils gcc gettext git libtool m4 make pkg-config tcl texinfo mingw-w64-x86_64-libusb mingw-w64-x86_64-libusb-compat-git mingw-w64-x86_64-libjaylink-git mingw-w64-x86_64-libftdi mingw-w64-x86_64-hidapi mingw-w64-x86_64-clang
+        ## FIXME: Also build for i686?
+        ## Install more MSYS2 packages from https://packages.msys2.org/base here
+        taskkill //IM gpg-agent.exe //F  # https://travis-ci.community/t/4967
+        export PATH=/C/tools/msys64/mingw64/bin:$PATH
+        export MAKE=mingw32-make  # so that Autotools can find it
+        ;;
+    esac
+
+before_cache:
+- |-
+    case $TRAVIS_OS_NAME in
+      windows)
+        # https://unix.stackexchange.com/a/137322/107554
+        $msys2 pacman --sync --clean --noconfirm
+        ;;
+    esac
+
+cache:
+    directories:
+    - $HOME/AppData/Local/Temp/chocolatey
+    - /C/tools/msys64
+
+matrix:
+  include:
+    - os: osx
+      env:
+        - CC=clang
+    - os: windows
+      env:
+        - CC=gcc