--- /dev/null
+matrix:
+ include:
+ - os: linux
+ dist: trusty
+ sudo: false
+ addons:
+ apt:
+ sources:
+ - ubuntu-toolchain-r-test
+ - sourceline: 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.9 main'
+ key_url: 'http://apt.llvm.org/llvm-snapshot.gpg.key'
+ packages:
+ - git
+ - ninja-build
+ - cmake
+ - llvm-3.9
+ - clang-3.9
+ - lldb-3.9
+ - liblldb-3.9-dev
+ - libunwind8
+ - libunwind8-dev
+ - gettext
+ - libicu-dev
+ - liblttng-ust-dev
+ - libcurl4-openssl-dev
+ - libssl-dev
+ - uuid-dev
+ - libnuma-dev
+ - libkrb5-dev
+ - g++-5
+ - os: linux
+ dist: trusty
+ sudo: required
+ env: TIZEN=1
+ addons:
+ apt:
+ sources:
+ - sourceline: 'deb http://download.tizen.org/tools/latest-release/Ubuntu_14.04/ /'
+ packages:
+ - gbs
+ - rpm2cpio
+ - os: osx
+ osx_image: xcode9.4
+
+env:
+ global:
+ - CLI_VERSION=2.1
+ - RELEASE_BRANCH=master
+ - RELEASE_REPO=Samsung/netcoredbg
+ - secure: "goktFL3DGZOhxD11w6BNUFmA02pMJLbQ8YbbrbaaeV831iFScbJf3TUFUJqrgn4ecWCz7d9bPD38XIMrRAr2m1VPW9N0aH/Zd/goxgVwO9Eu3JH3VclGMzBwnu1em1N7XNbhcAyFd7AqgBbAk0D5uBAfbMQqsJRDtXw+buqzrfwPUDEMlMr4ipt2RBSNOGvgFAixT1XCTNJi+gxoTuKAXB9UZHE4jPzC5c/xQVJQBCJI9jm6GlJ6Yr7aWpAXjGV1d0v1ZFpWNpD7FslVzFe3iX4oNqAjODHrgBVg2IO5M1A9BnfnUDh3xPahZNoE1yiAYGenXrjOs6x15KlzNEaoJ3/bOeNVytdddGRqbp2iw7nDMYp0uIjorD0WmFU9keKUC6K3g1m1i7GVrimTZR+kvYVifwMmotRuos6Kh7VGdAL0drsOgjdwZAOVNvEBcCYKcpawMNinccRQ77iLRC9iu8yfQiz9aRnHWrFbj/8v0V+hXDBDYk37of3v9e5+56iHOftpJZgs/4Eaf6SZpfCo8TqKiRKoqBpE9p2udjs+INcBY2Jdqd4zJzO3JzHd0GWIyR/9MxI0fE/4J6p/wlybdQat+yfqvdMXJg72Sd2FNcZZjgjtTYKlAK3up8KBxAew9i1YTwnYJsXR/+dKq61OKYVXM7ixAZuTmaJjEbAEDcI="
+
+branches:
+ except:
+ - latest
+
+language: cpp
+compiler: clang
+
+cache:
+ directories:
+ - $HOME/.nuget
+ - coreclr/bin/Product/Linux.x64.Release/inc
+ - coreclr/bin/Product/Linux.x64.Release/lib
+ - coreclr/bin/Product/OSX.x64.Release/inc
+ - coreclr/bin/Product/OSX.x64.Release/lib
+ - coreclr/src/inc
+ - coreclr/src/pal/inc
+ - coreclr/src/pal/inc/rt
+ - coreclr/src/pal/prebuilt/inc
+ - coreclr/src/debug/inc
+ - coreclr/src/debug/shim
+ - coreclr/src/dlls/dbgshim
+ - coreclr/src/coreclr/hosts/inc
+ - coreclr/src/ToolBox/SOS/Strike
+ - $HOME/GBS-ROOT/local/cache
+
+before_install:
+ - |
+ if [ ${TRAVIS_OS_NAME} = 'osx' ]; then
+ brew update
+ brew install git cmake ninja icu4c pkgconfig
+ brew link --force icu4c
+ mkdir -p /usr/local/lib/pkgconfig
+ ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/
+ ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/
+ ln -s /usr/local/opt/openssl/lib/pkgconfig/libcrypto.pc /usr/local/lib/pkgconfig/
+ ln -s /usr/local/opt/openssl/lib/pkgconfig/libssl.pc /usr/local/lib/pkgconfig/
+ ln -s /usr/local/opt/openssl/lib/pkgconfig/openssl.pc /usr/local/lib/pkgconfig/
+ fi
+
+install:
+ - |
+ if [ -z "$TIZEN" ]; then
+ # Download .NET CLI
+ export DOTNET_INSTALL_DIR="$PWD/.dotnetcli"
+ curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel "$CLI_VERSION" --install-dir "$DOTNET_INSTALL_DIR"
+ export PATH="$DOTNET_INSTALL_DIR:$PATH"
+ # Set CoreCLR binaries output directory name and (for linux) specific compiler versions
+ if [ ${TRAVIS_OS_NAME} = 'linux' ]; then
+ export CORECLR_PRODUCT=Linux.x64.Release CC=clang-3.9 CXX=clang++-3.9
+ elif [ ${TRAVIS_OS_NAME} = 'osx' ]; then
+ export CORECLR_PRODUCT=OSX.x64.Release
+ fi
+ # Make CoreCLR sources and binaries available for build script
+ if [ ! -f "coreclr/src/inc/.cache_valid" ]; then
+ # Invalidate cache and build CoreCLR, put dbgshim library into cached directory
+ rm -rf coreclr
+ git clone --depth 1 https://github.com/dotnet/coreclr -b "release/$CLI_VERSION" && cd coreclr
+ ./build.sh ninja skiptests skipnuget release && cp bin/Product/$CORECLR_PRODUCT/libdbgshim.* bin/Product/$CORECLR_PRODUCT/lib && touch src/inc/.cache_valid
+ cd ..
+ else
+ # Restore dbgshim library location from cached directory
+ cp coreclr/bin/Product/$CORECLR_PRODUCT/lib/libdbgshim.* coreclr/bin/Product/$CORECLR_PRODUCT
+ fi
+ fi
+
+script:
+ - |
+ if [ -z "$TIZEN" ]; then
+ # Build and run tests
+ mkdir build && cd build
+ cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DCLR_DIR=$PWD/../coreclr -DCMAKE_INSTALL_PREFIX=$PWD/../bin
+ ninja && ninja install
+ cd ..
+ dotnet build tests && dotnet test tests/runner
+ else
+ # Verify that Tizen build does not break
+ cat <<EOF > $HOME/.gbs.conf
+ [general]
+ profile = profile.target-TM1.unified
+ buildroot = ~/GBS-ROOT/
+ [profile.target-TM1.unified]
+ repos = repo.target.unified, repo.target.base
+ [repo.target.unified]
+ url=http://download.tizen.org/releases/milestone/tizen/unified/tizen-unified_20180528.1/repos/standard/packages/
+ [repo.target.base]
+ url=http://download.tizen.org/releases/milestone/tizen/base/tizen-base_20180518.1/repos/standard/packages/
+ EOF
+ gbs build -A armv7l
+ fi
+
+before_deploy:
+ - |
+ if [ "$TRAVIS_BRANCH" = "$RELEASE_BRANCH" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then
+ # Tag last commit as 'latest'.
+ git config --local user.name "Travis"
+ git config --local user.email "travis@travis-ci.org"
+
+ git remote add release "https://${GITHUB_API_KEY}@github.com/${RELEASE_REPO}.git"
+
+ git push -d release latest
+ git tag -d latest
+ git tag -a "latest" -m "[Autogenerated] This is the latest version pushed to the ${TRAVIS_BRANCH} branch."
+ git push release --tags
+ # Prepare files for deployment
+ if [ -z "$TIZEN" ]; then
+ mv bin netcoredbg
+ tar cfz netcoredbg-${TRAVIS_OS_NAME}-${TRAVIS_BRANCH}.tar.gz ./netcoredbg/*
+ else
+ # Generate tar.gz from rpm for Tizen SDK
+ RPMFILE=$(find ~/GBS-ROOT/local/repos/target_TM1.unified/armv7l/RPMS -type f -name 'netcoredbg-[0-9]*.rpm')
+ if [ ! -f "$RPMFILE" ]; then travis_terminate; fi
+ FILENAME=$(basename -- "$RPMFILE")
+ PKGNAME=$(echo "$FILENAME" | cut -d'-' -f1)
+ PKGVERSION=$(echo "$FILENAME" | cut -d'-' -f2)
+ PKGARCH=$(echo "$FILENAME"| cut -d'-' -f3 | cut -d'.' -f2)
+ TARGZNAME=$PKGNAME-$PKGVERSION-$PKGARCH.tar.gz
+ mkdir unpacked && cd unpacked
+ rpm2cpio "$RPMFILE" | cpio -idmv
+ touch ./home/owner/share/tmp/sdk_tools/$PKGNAME/version-$PKGVERSION
+ tar cfz ../$TARGZNAME --owner=root --group=root -C ./home/owner/share/tmp/sdk_tools .
+ cd ..
+ cp "$RPMFILE" ./
+ fi
+ fi
+deploy:
+ provider: releases
+ api_key: $GITHUB_API_KEY
+ file:
+ - "*.tar.gz"
+ - "*.rpm"
+ file_glob: true
+ skip_cleanup: true
+ overwrite: true
+ on:
+ repo: $RELEASE_REPO
+ branch: $RELEASE_BRANCH