Skip to content

Commit

Permalink
Add Travis CI build scripts (#108 closes #109)
Browse files Browse the repository at this point in the history
Use FrameworkPathOverride to allow Linux and macOS builds targeting .NET Framework 4.x
  • Loading branch information
luigiberrettini committed Apr 27, 2018
1 parent 85d09fe commit e05e5b6
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 0 deletions.
35 changes: 35 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
language: csharp
matrix:
include:
- os: linux
dist: trusty
mono: latest
dotnet: 2.1.3
sudo: required
env: MONO_BASE_PATH=/usr/lib/mono/
- os: osx
osx_image: xcode9.2
mono: latest
dotnet: 2.1.3
sudo: required
env: MONO_BASE_PATH=/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/
addons:
apt:
sources:
- sourceline: 'deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-trusty-prod trusty main'
key_url: 'https://packages.microsoft.com/keys/microsoft.asc'
packages:
- dotnet-dev-1.1.6
- dotnet-sdk-2.1.3
before_install:
- |
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
DOTNET_INSTALL_DIR="$PWD/.dotnetsdk"
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --version "1.1.6" --install-dir "$DOTNET_INSTALL_DIR" --no-path
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --version "2.1.3" --install-dir "$DOTNET_INSTALL_DIR" --no-path
export PATH="$DOTNET_INSTALL_DIR:$PATH"
fi
script:
- FrameworkPathOverride=$MONO_BASE_PATH/4.5-api/ $(pwd)/tools/build.sh '-target=Test' "-softwareVersion=$(git describe --abbrev=0 --tags | cut -c 2-)"
notifications:
email: false
40 changes: 40 additions & 0 deletions tools/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#!/bin/bash

function findPackageAssembly {
dir=$1
packageName=$2
assemblyName=$3
echo $(find "$dir/$packageName" -name "$assemblyName")
}

function installPackage {
dir=$1
packageName=$2
echo "Installing $packageName in $dir..."
mkdir -p $dir
contents='<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><TargetFramework>netstandard1.5</TargetFramework></PropertyGroup></Project>'
proj="$packagesDir/project.csproj"
echo $contents > $proj
dotnet add "$proj" package $packageName --package-directory $dir
}

scriptDir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )

rootDir=$scriptDir; while [ $(ls -Ald "$rootDir/.git" 2>/dev/null | wc -l) -eq 0 ]; do rootDir="$rootDir/.."; done
srcDir="$rootDir/src"
toolsDir="$rootDir/tools"
packagesDir="$toolsDir/cake"
cakePackageName='cake.coreclr'
cakeAssemblyName='Cake.dll'
cakeAssemblyPath=$(findPackageAssembly $packagesDir $cakePackageName $cakeAssemblyName)
if [ ! -f "$cakeAssemblyPath" ]; then
installPackage $packagesDir $cakePackageName
cakeAssemblyPath=$(findPackageAssembly $packagesDir $cakePackageName $cakeAssemblyName)
if [ ! -f "$cakeAssemblyPath" ]; then
echo "Cannot find Cake assembly '$cakeDll'"
exit 1
fi
fi
cakeScript="$scriptDir/build.cake"

dotnet "$cakeAssemblyPath" "$cakeScript" "-srcDir=$srcDir" "-toolsDir=$toolsDir" "-commitHash=$(git rev-parse --short HEAD)" "$@"

0 comments on commit e05e5b6

Please sign in to comment.