diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..cca870f --- /dev/null +++ b/.travis.yml @@ -0,0 +1,7 @@ +language: csharp +mono: latest +dotnet: 2.1.3 # .NET Core +script: + - ./build.sh + + diff --git a/Okta.AspNet.Abstractions/Okta.AspNet.Abstractions.csproj b/Okta.AspNet.Abstractions/Okta.AspNet.Abstractions.csproj index c15c050..3e6bee2 100644 --- a/Okta.AspNet.Abstractions/Okta.AspNet.Abstractions.csproj +++ b/Okta.AspNet.Abstractions/Okta.AspNet.Abstractions.csproj @@ -2,6 +2,7 @@ net452;netstandard2.0 + netstandard2.0 1.0.0-beta01 diff --git a/build.cake b/build.cake index e7abe42..83beac6 100644 --- a/build.cake +++ b/build.cake @@ -1,16 +1,17 @@ var target = Argument("target", "Default"); var configuration = Argument("configuration", "Release"); +// Ignoring .NET 4.5.2 projects as it is causing issues with travis. +// https://github.com/okta/okta-aspnet/issues/40 var Projects = new List() { - "Okta.AspNet.Abstractions", + "Okta.AspNet.Abstractions", "Okta.AspNet.Abstractions.Test", - "Okta.AspNet", - "Okta.AspNet.Test", - "Okta.AspNetCore", - "Okta.AspNetCore.Test" + //"Okta.AspNet", + //"Okta.AspNet.Test", + "Okta.AspNetCore", + "Okta.AspNetCore.Test" }; - Task("Clean").Does(() => { Console.WriteLine("Removing ./artifacts"); @@ -22,7 +23,6 @@ Task("Clean").Does(() => .ToList() .ForEach(d => CleanDirectory(d)); }); - Task("Restore") .IsDependentOn("Clean") .Does(() => @@ -33,7 +33,6 @@ Task("Restore") DotNetCoreRestore($"./{name}"); }); }); - Task("Build") .IsDependentOn("Restore") .Does(() => @@ -41,14 +40,12 @@ Task("Build") Projects.ForEach(name => { Console.WriteLine($"\nBuilding {name}"); - DotNetCoreBuild($"./{name}", new DotNetCoreBuildSettings { Configuration = configuration }); }); }); - Task("RunTests") .IsDependentOn("Restore") .IsDependentOn("Build") @@ -61,8 +58,6 @@ Task("RunTests") DotNetCoreTest(string.Format("./{0}/{0}.csproj", name)); }); }); - - Task("PackNuget") .IsDependentOn("RunTests") .Does(() => @@ -81,13 +76,11 @@ Task("PackNuget") }); }); }); - Task("Default") .IsDependentOn("Clean") .IsDependentOn("Restore") .IsDependentOn("Build") .IsDependentOn("RunTests") .IsDependentOn("PackNuget"); - // Run the specified (or default) target RunTarget(target); diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..58e86f6 --- /dev/null +++ b/build.sh @@ -0,0 +1,101 @@ +#!/usr/bin/env bash + +########################################################################## +# This is the Cake bootstrapper script for Linux and OS X. +# This file was downloaded from https://github.com/cake-build/resources +# Feel free to change this file to fit your needs. +########################################################################## + +# Define directories. +SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) +TOOLS_DIR=$SCRIPT_DIR/tools +NUGET_EXE=$TOOLS_DIR/nuget.exe +CAKE_EXE=$TOOLS_DIR/Cake/Cake.exe +PACKAGES_CONFIG=$TOOLS_DIR/packages.config +PACKAGES_CONFIG_MD5=$TOOLS_DIR/packages.config.md5sum + +# Define md5sum or md5 depending on Linux/OSX +MD5_EXE= +if [[ "$(uname -s)" == "Darwin" ]]; then + MD5_EXE="md5 -r" +else + MD5_EXE="md5sum" +fi + +# Define default arguments. +SCRIPT="build.cake" +TARGET="Default" +CONFIGURATION="Release" +VERBOSITY="verbose" +DRYRUN= +SHOW_VERSION=false +SCRIPT_ARGUMENTS=() + +# Parse arguments. +for i in "$@"; do + case $1 in + -s|--script) SCRIPT="$2"; shift ;; + -t|--target) TARGET="$2"; shift ;; + -c|--configuration) CONFIGURATION="$2"; shift ;; + -v|--verbosity) VERBOSITY="$2"; shift ;; + -d|--dryrun) DRYRUN="-dryrun" ;; + --version) SHOW_VERSION=true ;; + --) shift; SCRIPT_ARGUMENTS+=("$@"); break ;; + *) SCRIPT_ARGUMENTS+=("$1") ;; + esac + shift +done + +# Make sure the tools folder exist. +if [ ! -d "$TOOLS_DIR" ]; then + mkdir "$TOOLS_DIR" +fi + +# Make sure that packages.config exist. +if [ ! -f "$TOOLS_DIR/packages.config" ]; then + echo "Downloading packages.config..." + curl -Lsfo "$TOOLS_DIR/packages.config" http://cakebuild.net/download/bootstrapper/packages + if [ $? -ne 0 ]; then + echo "An error occured while downloading packages.config." + exit 1 + fi +fi + +# Download NuGet if it does not exist. +if [ ! -f "$NUGET_EXE" ]; then + echo "Downloading NuGet..." + curl -Lsfo "$NUGET_EXE" https://dist.nuget.org/win-x86-commandline/latest/nuget.exe + if [ $? -ne 0 ]; then + echo "An error occured while downloading nuget.exe." + exit 1 + fi +fi + +# Restore tools from NuGet. +pushd "$TOOLS_DIR" >/dev/null +if [ ! -f $PACKAGES_CONFIG_MD5 ] || [ "$( cat $PACKAGES_CONFIG_MD5 | sed 's/\r$//' )" != "$( $MD5_EXE $PACKAGES_CONFIG | awk '{ print $1 }' )" ]; then + find . -type d ! -name . | xargs rm -rf +fi + +mono "$NUGET_EXE" install -ExcludeVersion +if [ $? -ne 0 ]; then + echo "Could not restore NuGet packages." + exit 1 +fi + +$MD5_EXE $PACKAGES_CONFIG | awk '{ print $1 }' >| $PACKAGES_CONFIG_MD5 + +popd >/dev/null + +# Make sure that Cake has been installed. +if [ ! -f "$CAKE_EXE" ]; then + echo "Could not find Cake.exe at '$CAKE_EXE'." + exit 1 +fi + +# Start Cake +if $SHOW_VERSION; then + exec mono "$CAKE_EXE" -version +else + exec mono "$CAKE_EXE" $SCRIPT -verbosity=$VERBOSITY -configuration=$CONFIGURATION -target=$TARGET $DRYRUN "${SCRIPT_ARGUMENTS[@]}" +fi