From 81e3af6552af74fd1fbcb4056be48992ca6b0b2b Mon Sep 17 00:00:00 2001 From: Steffen Forkmann Date: Wed, 18 Oct 2017 16:00:27 +0200 Subject: [PATCH 1/6] Activate FCS build on CI --- netci.groovy | 92 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 61 insertions(+), 31 deletions(-) diff --git a/netci.groovy b/netci.groovy index ba971aaf9c4..22931accfcd 100644 --- a/netci.groovy +++ b/netci.groovy @@ -12,7 +12,7 @@ def static getBuildJobName(def configuration, def os) { [true, false].each { isPullRequest -> osList.each { os -> - def configurations = ['Debug', 'Release_ci_part1', 'Release_ci_part2', 'Release_ci_part3', 'Release_net40_no_vs' ]; + def configurations = ['Debug', 'Release_ci_part1', 'Release_ci_part2', 'Release_ci_part3', 'Release_net40_no_vs', 'Release_fcs' ]; if (os != 'Windows_NT') { // Only build one configuration on Linux/... so far configurations = ['Release']; @@ -27,48 +27,78 @@ def static getBuildJobName(def configuration, def os) { def buildCommand = ''; def buildFlavor= ''; - if (configuration == "Debug") { - buildFlavor = "debug" + if (configuration == "Release_fcs") { + buildFlavor = "release" build_args = "" + + if (os == 'Windows_NT') { + buildCommand = ".\\fcs\\build.cmd ${buildFlavor} ${build_args}" + } + else { + buildCommand = "./fsc/build.sh ${buildFlavor} ${build_args}" + } + + def newJobName = Utilities.getFullJobName(project, jobName, isPullRequest) + def newJob = job(newJobName) { + steps { + if (os == 'Windows_NT') { + batchFile(""" +echo *** Build Visual F# Tools *** + +cd fcs +.\\build.cmd ${buildFlavor} ${build_args}""") + } + else { + // Shell + shell(buildCommand) + } + } + } } else { - buildFlavor = "release" - if (configuration == "Release_ci_part1") { - build_args = "ci_part1" + if (configuration == "Debug") { + buildFlavor = "debug" + build_args = "" } - else if (configuration == "Release_ci_part2") { - build_args = "ci_part2" - } - else if (configuration == "Release_ci_part3") { - build_args = "ci_part3" + else { + buildFlavor = "release" + if (configuration == "Release_ci_part1") { + build_args = "ci_part1" + } + else if (configuration == "Release_ci_part2") { + build_args = "ci_part2" + } + else if (configuration == "Release_ci_part3") { + build_args = "ci_part3" + } + else if (configuration == "Release_net40_no_vs") { + build_args = "net40" + } + else { + build_args = "ci" + } } - else if (configuration == "Release_net40_no_vs") { - build_args = "net40" + + if (os == 'Windows_NT') { + buildCommand = ".\\build.cmd ${buildFlavor} ${build_args}" } else { - build_args = "ci" + buildCommand = "./build.sh ${buildFlavor} ${build_args}" } - } - if (os == 'Windows_NT') { - buildCommand = ".\\build.cmd ${buildFlavor} ${build_args}" - } - else { - buildCommand = "./build.sh ${buildFlavor} ${build_args}" - } - - def newJobName = Utilities.getFullJobName(project, jobName, isPullRequest) - def newJob = job(newJobName) { - steps { - if (os == 'Windows_NT') { - batchFile(""" + def newJobName = Utilities.getFullJobName(project, jobName, isPullRequest) + def newJob = job(newJobName) { + steps { + if (os == 'Windows_NT') { + batchFile(""" echo *** Build Visual F# Tools *** .\\build.cmd ${buildFlavor} ${build_args}""") - } - else { - // Shell - shell(buildCommand) + } + else { + // Shell + shell(buildCommand) + } } } } From 67c491d5f38648567c9803bc297551e6f04a8004 Mon Sep 17 00:00:00 2001 From: Steffen Forkmann Date: Wed, 18 Oct 2017 16:19:18 +0200 Subject: [PATCH 2/6] Simplify groovy --- netci.groovy | 103 ++++++++++++++++++++++----------------------------- 1 file changed, 45 insertions(+), 58 deletions(-) diff --git a/netci.groovy b/netci.groovy index 22931accfcd..653514e3c0c 100644 --- a/netci.groovy +++ b/netci.groovy @@ -24,81 +24,68 @@ def static getBuildJobName(def configuration, def os) { // Calculate job name def jobName = getBuildJobName(configuration, os) + def buildPath = ''; + if (os == 'Windows_NT') { + buildPath = ".\\" + } + else { + buildPath = "./" + } def buildCommand = ''; - def buildFlavor= ''; - if (configuration == "Release_fcs") { - buildFlavor = "release" - build_args = "" + if (configuration == "Release_fcs") { if (os == 'Windows_NT') { - buildCommand = ".\\fcs\\build.cmd ${buildFlavor} ${build_args}" + buildPath = ".\\fcs\\" } else { - buildCommand = "./fsc/build.sh ${buildFlavor} ${build_args}" + buildPath = "./fcs/" } - - def newJobName = Utilities.getFullJobName(project, jobName, isPullRequest) - def newJob = job(newJobName) { - steps { - if (os == 'Windows_NT') { - batchFile(""" -echo *** Build Visual F# Tools *** - -cd fcs -.\\build.cmd ${buildFlavor} ${build_args}""") - } - else { - // Shell - shell(buildCommand) - } - } - } + buildFlavor = "" + build_args = "TestAndNuget" + } + else if (configuration == "Debug") { + buildFlavor = "debug" + build_args = "" } else { - if (configuration == "Debug") { - buildFlavor = "debug" - build_args = "" + buildFlavor = "release" + if (configuration == "Release_ci_part1") { + build_args = "ci_part1" } - else { - buildFlavor = "release" - if (configuration == "Release_ci_part1") { - build_args = "ci_part1" - } - else if (configuration == "Release_ci_part2") { - build_args = "ci_part2" - } - else if (configuration == "Release_ci_part3") { - build_args = "ci_part3" - } - else if (configuration == "Release_net40_no_vs") { - build_args = "net40" - } - else { - build_args = "ci" - } + else if (configuration == "Release_ci_part2") { + build_args = "ci_part2" } - - if (os == 'Windows_NT') { - buildCommand = ".\\build.cmd ${buildFlavor} ${build_args}" + else if (configuration == "Release_ci_part3") { + build_args = "ci_part3" + } + else if (configuration == "Release_net40_no_vs") { + build_args = "net40" } else { - buildCommand = "./build.sh ${buildFlavor} ${build_args}" + build_args = "ci" } + } + + if (os == 'Windows_NT') { + buildCommand = "${buildPath}build.cmd ${buildFlavor} ${build_args}" + } + else { + buildCommand = "${buildPath}build.sh ${buildFlavor} ${build_args}" + } - def newJobName = Utilities.getFullJobName(project, jobName, isPullRequest) - def newJob = job(newJobName) { - steps { - if (os == 'Windows_NT') { - batchFile(""" + def newJobName = Utilities.getFullJobName(project, jobName, isPullRequest) + def newJob = job(newJobName) { + steps { + if (os == 'Windows_NT') { + batchFile(""" echo *** Build Visual F# Tools *** -.\\build.cmd ${buildFlavor} ${build_args}""") - } - else { - // Shell - shell(buildCommand) - } +${buildPath}build.cmd ${buildFlavor} ${build_args}""") + } + else { + // Shell + shell(buildCommand) } } } From 62de6cb5c4d7db5a9729747b99c2db0429bae8c3 Mon Sep 17 00:00:00 2001 From: Steffen Forkmann Date: Wed, 18 Oct 2017 16:34:29 +0200 Subject: [PATCH 3/6] Use paket in magic mode --- fcs/.paket/Paket.Restore.targets | 225 ++++++++++++++++++++++++++++++ fcs/.paket/paket.bootstrapper.exe | Bin 28208 -> 0 bytes fcs/.paket/paket.exe | Bin 0 -> 63784 bytes fcs/build.cmd | 2 +- fcs/build.sh | 6 - 5 files changed, 226 insertions(+), 7 deletions(-) create mode 100644 fcs/.paket/Paket.Restore.targets delete mode 100644 fcs/.paket/paket.bootstrapper.exe create mode 100644 fcs/.paket/paket.exe diff --git a/fcs/.paket/Paket.Restore.targets b/fcs/.paket/Paket.Restore.targets new file mode 100644 index 00000000000..67f745a3671 --- /dev/null +++ b/fcs/.paket/Paket.Restore.targets @@ -0,0 +1,225 @@ + + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + true + $(MSBuildThisFileDirectory) + $(MSBuildThisFileDirectory)..\ + $(PaketRootPath)paket-files\paket.restore.cached + $(PaketRootPath)paket.lock + /Library/Frameworks/Mono.framework/Commands/mono + mono + + $(PaketRootPath)paket.exe + $(PaketToolsPath)paket.exe + "$(PaketExePath)" + $(MonoPath) --runtime=v4.0.30319 "$(PaketExePath)" + $(PaketRootPath)paket.bootstrapper.exe + $(PaketToolsPath)paket.bootstrapper.exe + "$(PaketBootStrapperExePath)" + $(MonoPath) --runtime=v4.0.30319 "$(PaketBootStrapperExePath)" + + + + + true + true + + + + + + + true + $(NoWarn);NU1603 + + + + $([System.IO.File]::ReadAllText('$(PaketRestoreCacheFile)')) + $([System.IO.File]::ReadAllText('$(PaketLockFilePath)')) + true + false + true + + + + + + + + + $(MSBuildProjectDirectory)\obj\$(MSBuildProjectFile).paket.references.cached + + $(MSBuildProjectFullPath).paket.references + + $(MSBuildProjectDirectory)\$(MSBuildProjectName).paket.references + + $(MSBuildProjectDirectory)\paket.references + $(MSBuildProjectDirectory)\obj\$(MSBuildProjectFile).$(TargetFramework).paket.resolved + true + references-file-or-cache-not-found + + + + + $([System.IO.File]::ReadAllText('$(PaketReferencesCachedFilePath)')) + $([System.IO.File]::ReadAllText('$(PaketOriginalReferencesFilePath)')) + references-file + false + + + + + false + + + + + true + target-framework '$(TargetFramework)' + + + + + + + + + + + + + + + + + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[0]) + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[1]) + + + %(PaketReferencesFileLinesInfo.PackageVersion) + + + + + $(MSBuildProjectDirectory)/obj/$(MSBuildProjectFile).NuGet.Config + + + + + + + false + + + + + + $(MSBuildProjectDirectory)/$(MSBuildProjectFile) + true + false + true + + + + <_NuspecFiles Include="$(BaseIntermediateOutputPath)*.nuspec"/> + + + + + + + + + + + + + + + diff --git a/fcs/.paket/paket.bootstrapper.exe b/fcs/.paket/paket.bootstrapper.exe deleted file mode 100644 index 64fdf248bfcf48ee396f801e8a8a266b85974238..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28208 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
SV|C^5SU~ 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 diff --git a/fcs/.paket/paket.exe b/fcs/.paket/paket.exe new file mode 100644 index 0000000000000000000000000000000000000000..ef3ea32af2a3c8605297c1ee04e4835581f86e3d GIT binary patch literal 63784 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 E0NkFmxc~qF literal 0 HcmV?d00001 diff --git a/fcs/build.cmd b/fcs/build.cmd index 312c7ed7382..163dd456347 100644 --- a/fcs/build.cmd +++ b/fcs/build.cmd @@ -2,7 +2,7 @@ .nuget\NuGet.exe restore -PackagesDirectory packages setlocal cd fcs -.paket\paket.bootstrapper.exe + dotnet restore tools.fsproj if errorlevel 1 ( endlocal diff --git a/fcs/build.sh b/fcs/build.sh index 3e7e80e7d88..f0107dfdafe 100644 --- a/fcs/build.sh +++ b/fcs/build.sh @@ -15,12 +15,6 @@ else dotnet restore tools.fsproj - mono .paket/paket.bootstrapper.exe - exit_code=$? - if [ $exit_code -ne 0 ]; then - exit $exit_code - fi - mono .paket/paket.exe restore exit_code=$? if [ $exit_code -ne 0 ]; then From 7cb06c5e28f8502d7a73af04f14428bde81c43ca Mon Sep 17 00:00:00 2001 From: Steffen Forkmann Date: Wed, 18 Oct 2017 16:39:24 +0200 Subject: [PATCH 4/6] Ignore .fake --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 133aa1231be..ff69ccba886 100644 --- a/.gitignore +++ b/.gitignore @@ -118,3 +118,4 @@ source_link.json /VSRelease/net40/bin System.ValueTuple.dll tests/fsharpqa/testenv/bin/System.ValueTuple.dll +/*/.fake From 2c6d3624ca7a9725cbd0dff098e3179bb5976c22 Mon Sep 17 00:00:00 2001 From: Steffen Forkmann Date: Wed, 18 Oct 2017 16:39:51 +0200 Subject: [PATCH 5/6] Gitignore fcs/packages --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index ff69ccba886..b9413eb5c5f 100644 --- a/.gitignore +++ b/.gitignore @@ -119,3 +119,4 @@ source_link.json System.ValueTuple.dll tests/fsharpqa/testenv/bin/System.ValueTuple.dll /*/.fake +/fcs/packages/ From 73e997fc4a273138d39e035c512a83cdd7bdecbf Mon Sep 17 00:00:00 2001 From: Steffen Forkmann Date: Wed, 18 Oct 2017 16:40:30 +0200 Subject: [PATCH 6/6] Ignore paket-files --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index b9413eb5c5f..1a7e530e494 100644 --- a/.gitignore +++ b/.gitignore @@ -118,5 +118,6 @@ source_link.json /VSRelease/net40/bin System.ValueTuple.dll tests/fsharpqa/testenv/bin/System.ValueTuple.dll -/*/.fake +*/.fake /fcs/packages/ +*/paket-files/