From 7ab5926a6ab34acf13dd764c78df1cf579aba91a Mon Sep 17 00:00:00 2001 From: tom-garratt-w Date: Fri, 27 Jul 2018 13:07:19 +0100 Subject: [PATCH 1/5] A few fixes for uploading new projects. --- OctopusProjectBuilder.Uploader/ModelUploader.cs | 15 ++++++++++++--- .../Model/YamlProject.cs | 2 +- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/OctopusProjectBuilder.Uploader/ModelUploader.cs b/OctopusProjectBuilder.Uploader/ModelUploader.cs index 7e0d7d3..f7057dc 100644 --- a/OctopusProjectBuilder.Uploader/ModelUploader.cs +++ b/OctopusProjectBuilder.Uploader/ModelUploader.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; using Octopus.Client; using Octopus.Client.Model; @@ -94,7 +95,9 @@ private async Task UploadProject(Project project) { var projectResource = await LoadResource(_repository.Projects, project.Identifier); await projectResource.UpdateWith(project, _repository); - await Upsert(_repository.Projects, projectResource); + var response = await Upsert(_repository.Projects, projectResource); + projectResource.DeploymentProcessId = response.DeploymentProcessId; + projectResource.VariableSetId = response.VariableSetId; var deploymentProcessResource = await _repository.DeploymentProcesses.Get(projectResource.DeploymentProcessId); await deploymentProcessResource.UpdateWith(project.DeploymentProcess, _repository); @@ -116,11 +119,17 @@ await Update( private async Task UploadProjectTriggers(ProjectResource projectResource, IEnumerable triggers) { + var triggerList = triggers.ToList(); + if (!triggerList.Any()) + { + return; + } + var projectTriggers = await _repository.Projects.GetTriggers(projectResource); foreach (var resource in projectTriggers.Items) await Delete(_repository.ProjectTriggers, resource, projectResource.Name); - foreach (var trigger in triggers) + foreach (var trigger in triggerList) { var resource = await LoadResource(name => _repository.ProjectTriggers.FindByName(projectResource, name), trigger.Identifier); await resource.UpdateWith(trigger, projectResource.Id, _repository); @@ -168,7 +177,7 @@ private async Task Upsert(TRepository reposit var result = string.IsNullOrWhiteSpace(resource.Id) ? await repository.Create(resource) : await repository.Modify(resource); - + _logger.LogDebug($"Upserted {typeof(TResource).Name}: {resource.Name}"); return result; } diff --git a/OctopusProjectBuilder.YamlReader/Model/YamlProject.cs b/OctopusProjectBuilder.YamlReader/Model/YamlProject.cs index e9d11db..f594812 100644 --- a/OctopusProjectBuilder.YamlReader/Model/YamlProject.cs +++ b/OctopusProjectBuilder.YamlReader/Model/YamlProject.cs @@ -85,7 +85,7 @@ public Project ToModel() new ElementReference(ProjectGroupRef), VersioningStrategy?.ToModel(), Triggers.EnsureNotNull().Select(t => t.ToModel()), - (TenantedDeploymentMode)Enum.Parse(typeof(TenantedDeploymentMode), TenantedDeploymentMode)); + (TenantedDeploymentMode)Enum.Parse(typeof(TenantedDeploymentMode), TenantedDeploymentMode ?? default(TenantedDeploymentMode).ToString())); } public static YamlProject FromModel(Project model) From 9fbce61826f8ef5ad9d1ec27961c0219ed3d57d6 Mon Sep 17 00:00:00 2001 From: tom-garratt-w Date: Fri, 10 Aug 2018 11:18:36 +0100 Subject: [PATCH 2/5] Changed makefile to work with dotnet core --- ...ctopusProjectBuilder.Uploader.Tests.csproj | 5 +++++ ...opusProjectBuilder.YamlReader.Tests.csproj | 5 +++++ make/Makefile.ps1 | 22 ++++++++++++++----- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/OctopusProjectBuilder.Uploader.Tests/OctopusProjectBuilder.Uploader.Tests.csproj b/OctopusProjectBuilder.Uploader.Tests/OctopusProjectBuilder.Uploader.Tests.csproj index 6081b2a..508eab2 100644 --- a/OctopusProjectBuilder.Uploader.Tests/OctopusProjectBuilder.Uploader.Tests.csproj +++ b/OctopusProjectBuilder.Uploader.Tests/OctopusProjectBuilder.Uploader.Tests.csproj @@ -7,6 +7,11 @@ + + full + true + + diff --git a/OctopusProjectBuilder.YamlReader.Tests/OctopusProjectBuilder.YamlReader.Tests.csproj b/OctopusProjectBuilder.YamlReader.Tests/OctopusProjectBuilder.YamlReader.Tests.csproj index f889575..52394ca 100644 --- a/OctopusProjectBuilder.YamlReader.Tests/OctopusProjectBuilder.YamlReader.Tests.csproj +++ b/OctopusProjectBuilder.YamlReader.Tests/OctopusProjectBuilder.YamlReader.Tests.csproj @@ -7,6 +7,11 @@ + + full + true + + diff --git a/make/Makefile.ps1 b/make/Makefile.ps1 index 829d5ee..2620fa2 100644 --- a/make/Makefile.ps1 +++ b/make/Makefile.ps1 @@ -5,23 +5,35 @@ Define-Step -Name 'Update Assembly Info' -Target 'build' -Body { Define-Step -Name 'Build' -Target 'build' -Body { call $Context.NugetExe restore OctopusProjectBuilder.sln - call "${env:ProgramFiles(x86)}\MSBuild\14.0\Bin\msbuild.exe" OctopusProjectBuilder.sln /t:"Clean,Build" /p:Configuration=Release /m /verbosity:m /nologo /p:TreatWarningsAsErrors=true + #call "${env:ProgramFiles(x86)}\MSBuild\14.0\Bin\msbuild.exe" OctopusProjectBuilder.sln /t:"Clean,Build" /p:Configuration=Release /m /verbosity:m /nologo /p:TreatWarningsAsErrors=true + call dotnet build --configuration Release /p:DebugType=Full } Define-Step -Name 'Tests' -Target 'build' -Body { . (require 'psmake.mod.testing') + + Write-ShortStatus "Preparing OpenCover" + $openCoverConsole = $PSScriptRoot + "\packages\OpenCover.4.6.519\tools\OpenCover.Console.exe" + + Write-ShortStatus "Running tests with OpenCover" + $RunnerArgs = "test", "OctopusProjectBuilder.YamlReader.Tests", "--no-build", "-f netcoreapp2.0", "-c Release", "-l:trx;LogFileName=..\..\reports\unit-test-results1.xml" + call "$openCoverConsole" "-log:Error" "-showunvisited" "-oldStyle" "-register:user" "-target:dotnet.exe" "-targetargs:`"$RunnerArgs`"" "`"-filter:+[OctopusProjectBuilder*]*`"" "-coverbytest:*.Tests.dll" "-output:$PSScriptRoot\..\reports\opencover1.xml" + + $RunnerArgs = "test", "OctopusProjectBuilder.Uploader.Tests", "--no-build", "-f netcoreapp2.0", "-c Release", "-l:trx;LogFileName=..\..\reports\unit-test-results2.xml" + call "$openCoverConsole" "-log:Error" "-showunvisited" "-oldStyle" "-register:user" "-target:dotnet.exe" "-targetargs:`"$RunnerArgs`"" "`"-filter:+[OctopusProjectBuilder*]*`"" "-coverbytest:*.Tests.dll" "-output:$PSScriptRoot\..\reports\opencover2.xml" $tests = @() - $tests += Define-NUnit3Tests -GroupName 'Unit Tests' -TestAssembly "*.Tests\bin\Release\*.Tests.dll" + $tests += Create-Object @{CoverageReports = "reports\opencover1.xml", "reports\opencover2.xml"; + ReportDirectory = $PSScriptRoot + "\..\reports" + TestResult = "..\..\reports\unit-test-results.xml"} $tests ` - | Run-Tests -EraseReportDirectory -Cover -CodeFilter '+[OctopusProjectBuilder*]* -[*.Tests*]*' -TestFilter '*.Tests.dll' ` | Generate-CoverageSummary ` - | Check-AcceptableCoverage -AcceptableCoverage 89 + | Check-AcceptableCoverage -AcceptableCoverage 75 } Define-Step -Name 'Documentation generation' -Target 'build' -Body { - & OctopusProjectBuilder.DocGen\bin\Release\OctopusProjectBuilder.DocGen.exe | out-file Manual.md -Encoding utf8 + & dotnet .\OctopusProjectBuilder.DocGen\bin\Release\netcoreapp2.0\OctopusProjectBuilder.DocGen.dll | out-file Manual.md -Encoding utf8 if ($LastExitCode -ne 0) { throw "A program execution was not successful (Exit code: $LASTEXITCODE)." } } From da43b03f40d2a7627bafeb48d8138965b19bfc23 Mon Sep 17 00:00:00 2001 From: tom-garratt-w Date: Fri, 10 Aug 2018 15:58:02 +0100 Subject: [PATCH 3/5] Changed to local user nuget path for OpenCover installation --- make/Makefile.ps1 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/make/Makefile.ps1 b/make/Makefile.ps1 index 2620fa2..2849ecf 100644 --- a/make/Makefile.ps1 +++ b/make/Makefile.ps1 @@ -13,7 +13,8 @@ Define-Step -Name 'Tests' -Target 'build' -Body { . (require 'psmake.mod.testing') Write-ShortStatus "Preparing OpenCover" - $openCoverConsole = $PSScriptRoot + "\packages\OpenCover.4.6.519\tools\OpenCover.Console.exe" + $NugetPath = $env:USERPROFILE + "\.nuget" + $openCoverConsole = $NugetPath + "\packages\OpenCover\4.6.519\tools\OpenCover.Console.exe" Write-ShortStatus "Running tests with OpenCover" $RunnerArgs = "test", "OctopusProjectBuilder.YamlReader.Tests", "--no-build", "-f netcoreapp2.0", "-c Release", "-l:trx;LogFileName=..\..\reports\unit-test-results1.xml" From 8d8e8b1d15a9122973564fd17cdfcd08e1c7f810 Mon Sep 17 00:00:00 2001 From: tom-garratt-w Date: Mon, 13 Aug 2018 10:03:28 +0100 Subject: [PATCH 4/5] Grab the opencover package before running it, using the old path --- make/Makefile.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/make/Makefile.ps1 b/make/Makefile.ps1 index 2849ecf..0d33162 100644 --- a/make/Makefile.ps1 +++ b/make/Makefile.ps1 @@ -13,8 +13,8 @@ Define-Step -Name 'Tests' -Target 'build' -Body { . (require 'psmake.mod.testing') Write-ShortStatus "Preparing OpenCover" - $NugetPath = $env:USERPROFILE + "\.nuget" - $openCoverConsole = $NugetPath + "\packages\OpenCover\4.6.519\tools\OpenCover.Console.exe" + $OpenCoverPath = Fetch-Package "OpenCover" "4.6.519" + $openCoverConsole = $OpenCoverPath + "\tools\OpenCover.Console.exe" Write-ShortStatus "Running tests with OpenCover" $RunnerArgs = "test", "OctopusProjectBuilder.YamlReader.Tests", "--no-build", "-f netcoreapp2.0", "-c Release", "-l:trx;LogFileName=..\..\reports\unit-test-results1.xml" From fc87f3cf4a35d5043f36946ed90435da19dcca05 Mon Sep 17 00:00:00 2001 From: tom-garratt-w Date: Mon, 13 Aug 2018 10:09:17 +0100 Subject: [PATCH 5/5] Create output folder first --- make/Makefile.ps1 | 1 + 1 file changed, 1 insertion(+) diff --git a/make/Makefile.ps1 b/make/Makefile.ps1 index 0d33162..227d96e 100644 --- a/make/Makefile.ps1 +++ b/make/Makefile.ps1 @@ -17,6 +17,7 @@ Define-Step -Name 'Tests' -Target 'build' -Body { $openCoverConsole = $OpenCoverPath + "\tools\OpenCover.Console.exe" Write-ShortStatus "Running tests with OpenCover" + mkdir "reports" $RunnerArgs = "test", "OctopusProjectBuilder.YamlReader.Tests", "--no-build", "-f netcoreapp2.0", "-c Release", "-l:trx;LogFileName=..\..\reports\unit-test-results1.xml" call "$openCoverConsole" "-log:Error" "-showunvisited" "-oldStyle" "-register:user" "-target:dotnet.exe" "-targetargs:`"$RunnerArgs`"" "`"-filter:+[OctopusProjectBuilder*]*`"" "-coverbytest:*.Tests.dll" "-output:$PSScriptRoot\..\reports\opencover1.xml"