diff --git a/.gitattributes b/.gitattributes index bdaa5ba982..c2f0f84273 100644 --- a/.gitattributes +++ b/.gitattributes @@ -48,3 +48,5 @@ *.fsproj text=auto *.dbproj text=auto *.sln text=auto eol=crlf + +*.sh eol=lf \ No newline at end of file diff --git a/.gitignore b/.gitignore index 2837d3092b..308fec5350 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,5 @@ nuget.exe *.sln.ide project.lock.json /.vs/ +.testPublish/ +.build/ \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 4965a261c5..529ee1b402 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,5 +22,9 @@ install: - cd $OLDPWD mono: - 4.0.5 +os: + - linux + - osx +osx_image: xcode7.1 script: - ./build.sh --quiet verify diff --git a/NuGet.config b/NuGet.config index 1707938c61..8de7d930c6 100644 --- a/NuGet.config +++ b/NuGet.config @@ -1,7 +1,7 @@ - + \ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml index 636a7618d3..72bddecb4b 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -4,4 +4,4 @@ build_script: - build.cmd --quiet verify clone_depth: 1 test: off -deploy: off \ No newline at end of file +deploy: off diff --git a/build.cmd b/build.cmd index 553e3929a0..936a70fc02 100644 --- a/build.cmd +++ b/build.cmd @@ -1,40 +1,40 @@ -@echo off -cd %~dp0 - +@ECHO off SETLOCAL + +SET REPO_FOLDER=%~dp0 +CD "%REPO_FOLDER%" + +SET BUILD_FOLDER=.build +SET KOREBUILD_FOLDER=%BUILD_FOLDER%\KoreBuild-dotnet +SET KOREBUILD_VERSION= + +SET NUGET_PATH=%BUILD_FOLDER%\NuGet.exe SET NUGET_VERSION=latest SET CACHED_NUGET=%LocalAppData%\NuGet\nuget.%NUGET_VERSION%.exe -SET BUILDCMD_KOREBUILD_VERSION= -SET BUILDCMD_DNX_VERSION= -IF EXIST %CACHED_NUGET% goto copynuget -echo Downloading latest version of NuGet.exe... -IF NOT EXIST %LocalAppData%\NuGet md %LocalAppData%\NuGet -@powershell -NoProfile -ExecutionPolicy unrestricted -Command "$ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest 'https://dist.nuget.org/win-x86-commandline/%NUGET_VERSION%/nuget.exe' -OutFile '%CACHED_NUGET%'" - -:copynuget -IF EXIST .nuget\nuget.exe goto restore -md .nuget -copy %CACHED_NUGET% .nuget\nuget.exe > nul - -:restore -IF EXIST packages\Sake goto getdnx -IF "%BUILDCMD_KOREBUILD_VERSION%"=="" ( - .nuget\nuget.exe install KoreBuild -ExcludeVersion -o packages -nocache -pre -) ELSE ( - .nuget\nuget.exe install KoreBuild -version %BUILDCMD_KOREBUILD_VERSION% -ExcludeVersion -o packages -nocache -pre -) -.nuget\NuGet.exe install Sake -ExcludeVersion -Source https://www.nuget.org/api/v2/ -Out packages - -:getdnx -IF "%BUILDCMD_DNX_VERSION%"=="" ( - SET BUILDCMD_DNX_VERSION=latest -) -IF "%SKIP_DNX_INSTALL%"=="" ( - CALL packages\KoreBuild\build\dnvm install %BUILDCMD_DNX_VERSION% -runtime CoreCLR -arch x86 -alias default - CALL packages\KoreBuild\build\dnvm install default -runtime CLR -arch x86 -alias default -) ELSE ( - CALL packages\KoreBuild\build\dnvm use default -runtime CLR -arch x86 +IF NOT EXIST %BUILD_FOLDER% ( + md %BUILD_FOLDER% ) -packages\Sake\tools\Sake.exe -I packages\KoreBuild\build -f makefile.shade %* +IF NOT EXIST %NUGET_PATH% ( + IF NOT EXIST %CACHED_NUGET% ( + echo Downloading latest version of NuGet.exe... + IF NOT EXIST %LocalAppData%\NuGet ( + md %LocalAppData%\NuGet + ) + @powershell -NoProfile -ExecutionPolicy unrestricted -Command "$ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest 'https://dist.nuget.org/win-x86-commandline/%NUGET_VERSION%/nuget.exe' -OutFile '%CACHED_NUGET%'" + ) + + copy %CACHED_NUGET% %NUGET_PATH% > nul +) + +IF NOT EXIST %KOREBUILD_FOLDER% ( + SET KOREBUILD_DOWNLOAD_ARGS= + IF NOT "%KOREBUILD_VERSION%"=="" ( + SET KOREBUILD_DOWNLOAD_ARGS=-version %KOREBUILD_VERSION% + ) + + %BUILD_FOLDER%\nuget.exe install KoreBuild-dotnet -ExcludeVersion -o %BUILD_FOLDER% -nocache -pre %KOREBUILD_DOWNLOAD_ARGS% +) + +"%KOREBUILD_FOLDER%\build\KoreBuild.cmd" %* \ No newline at end of file diff --git a/build.sh b/build.sh index da4e3fcd1c..c99124455c 100755 --- a/build.sh +++ b/build.sh @@ -1,5 +1,10 @@ #!/usr/bin/env bash +buildFolder=.build +koreBuildFolder=$buildFolder/KoreBuild-dotnet + +nugetPath=$buildFolder/nuget.exe + if test `uname` = Darwin; then cachedir=~/Library/Caches/KBuild else @@ -11,33 +16,30 @@ else fi mkdir -p $cachedir nugetVersion=latest -cachePath=$cachedir/nuget.$nugetVersion.exe +cacheNuget=$cachedir/nuget.$nugetVersion.exe -url=https://dist.nuget.org/win-x86-commandline/$nugetVersion/nuget.exe +nugetUrl=https://dist.nuget.org/win-x86-commandline/$nugetVersion/nuget.exe -if test ! -f $cachePath; then - wget -O $cachePath $url 2>/dev/null || curl -o $cachePath --location $url /dev/null +if test ! -d $buildFolder; then + mkdir $buildFolder fi -if test ! -e .nuget; then - mkdir .nuget - cp $cachePath .nuget/nuget.exe +if test ! -f $nugetPath; then + if test ! -f $cacheNuget; then + wget -O $cacheNuget $nugetUrl 2>/dev/null || curl -o $cacheNuget --location $nugetUrl /dev/null + fi + + cp $cacheNuget $nugetPath fi -if test ! -d packages/Sake; then - mono .nuget/nuget.exe install KoreBuild -ExcludeVersion -o packages -nocache -pre - mono .nuget/nuget.exe install Sake -ExcludeVersion -Source https://www.nuget.org/api/v2/ -Out packages +if test ! -d $koreBuildFolder; then + mono $nugetPath install KoreBuild-dotnet -ExcludeVersion -o $buildFolder -nocache -pre + chmod +x $koreBuildFolder/build/KoreBuild.sh fi -if ! type dnvm > /dev/null 2>&1; then - source packages/KoreBuild/build/dnvm.sh +makeFile=makefile.shade +if [ ! -e $makeFile ]; then + makeFile=$koreBuildFolder/build/makefile.shade fi -if ! type dnx > /dev/null 2>&1 || [ -z "$SKIP_DNX_INSTALL" ]; then - dnvm install latest -runtime coreclr -alias default - dnvm install default -runtime mono -alias default -else - dnvm use default -runtime mono -fi - -mono packages/Sake/tools/Sake.exe -I packages/KoreBuild/build -f makefile.shade "$@" +./$koreBuildFolder/build/KoreBuild.sh -n $nugetPath -m $makeFile "$@" \ No newline at end of file diff --git a/makefile.shade b/makefile.shade deleted file mode 100644 index 562494d144..0000000000 --- a/makefile.shade +++ /dev/null @@ -1,7 +0,0 @@ - -var VERSION='0.1' -var FULL_VERSION='0.1' -var AUTHORS='Microsoft Open Technologies, Inc.' - -use-standard-lifecycle -k-standard-goals diff --git a/test/AutobahnTestClient/Program.cs b/test/AutobahnTestClient/Program.cs index d6251c8b6f..6a3ae749a7 100644 --- a/test/AutobahnTestClient/Program.cs +++ b/test/AutobahnTestClient/Program.cs @@ -12,11 +12,16 @@ namespace AutobahnTestClient { public class Program { - public async Task Main(string[] args) + public static void Main(string[] args) + { + new Program().Run(args).Wait(); + } + + private async Task Run(string[] args) { try { - string serverAddress = "ws://localhost:9001"; + string serverAddress = "ws://localhost:5000"; string agent = "ManagedWebSockets"; // "NativeWebSockets"; diff --git a/test/AutobahnTestClient/Project.json b/test/AutobahnTestClient/project.json similarity index 70% rename from test/AutobahnTestClient/Project.json rename to test/AutobahnTestClient/project.json index 4df967525e..2efb280920 100644 --- a/test/AutobahnTestClient/Project.json +++ b/test/AutobahnTestClient/project.json @@ -1,10 +1,10 @@ { + "compilationOptions": { + "emitEntryPoint": true + }, "dependencies": { "Microsoft.AspNetCore.WebSockets.Client": "0.1.0-*" }, - "commands": { - "run": "run" - }, "frameworks": { "dnx451": {} } diff --git a/test/AutobahnTestServer/Project.json b/test/AutobahnTestServer/project.json similarity index 63% rename from test/AutobahnTestServer/Project.json rename to test/AutobahnTestServer/project.json index 1ddb6860e7..d6f3ab082b 100644 --- a/test/AutobahnTestServer/Project.json +++ b/test/AutobahnTestServer/project.json @@ -2,16 +2,15 @@ "exclude": "wwwroot/**/*", "dependencies": { "Microsoft.AspNetCore.WebSockets.Server": "0.1.0-*", - "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-*" + "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-*", + "Microsoft.NETCore.Platforms": "1.0.1-*" }, "compilationOptions": { "emitEntryPoint": true }, - "commands": { - "web": "AutobahnTestServer" - }, "frameworks": { "dnx451": {}, "dnxcore50": {} - } + }, + "content": [ "hosting.json" ] } \ No newline at end of file diff --git a/test/Microsoft.AspNetCore.WebSockets.Client.Test/project.json b/test/Microsoft.AspNetCore.WebSockets.Client.Test/project.json index de12b42029..813176be56 100644 --- a/test/Microsoft.AspNetCore.WebSockets.Client.Test/project.json +++ b/test/Microsoft.AspNetCore.WebSockets.Client.Test/project.json @@ -1,17 +1,14 @@ { "dependencies": { - "Microsoft.AspNetCore.WebSockets.Protocol": "0.1.0-*", "Microsoft.AspNetCore.WebSockets.Client": "0.1.0-*", "Microsoft.AspNetCore.WebSockets.Server": "0.1.0-*", "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-*", "Microsoft.AspNetCore.Testing": "1.0.0-*", - "Microsoft.NETCore.Platforms": "1.0.1-*", - "xunit.runner.aspnet": "2.0.0-aspnet-*" + "xunit": "2.1.0", + "xunit.runner.console": "2.1.0" }, + "testRunner": "xunit", "frameworks": { "dnx451": {} - }, - "commands": { - "test": "xunit.runner.aspnet" } } \ No newline at end of file diff --git a/test/Microsoft.AspNetCore.WebSockets.Protocol.Test/project.json b/test/Microsoft.AspNetCore.WebSockets.Protocol.Test/project.json index 15de66709f..f189170f6f 100644 --- a/test/Microsoft.AspNetCore.WebSockets.Protocol.Test/project.json +++ b/test/Microsoft.AspNetCore.WebSockets.Protocol.Test/project.json @@ -2,11 +2,24 @@ "dependencies": { "Microsoft.AspNetCore.WebSockets.Protocol": "0.1.0-*", "Microsoft.NETCore.Platforms": "1.0.1-*", - "xunit.runner.aspnet": "2.0.0-aspnet-*" + "xunit": "2.1.0" }, + "testRunner": "xunit", "frameworks": { - "dnx451": {}, - "dnxcore50": {} + "dnx451": { + "frameworkAssemblies": { + "System.Runtime": "" + }, + "dependencies": { + "xunit.runner.console": "2.1.0" + } + }, + "dnxcore50": { + "dependencies": { + "xunit.runner.aspnet": "2.0.0-aspnet-*" + }, + "imports": "portable-net45+win8" + } }, "commands": { "test": "xunit.runner.aspnet"