From de0b86b516ed3afda65502bdd4b932f440f8ddda Mon Sep 17 00:00:00 2001 From: Gerhard Olsson Date: Sat, 20 Sep 2025 21:19:52 +0200 Subject: [PATCH 1/2] fix: adjust build for releases add files added in the release/3.0 branch, required since GE4.0 Prepare for signing releases. --- GitExtensions.PluginManager.sln | 2 +- appveyor.yml | 41 +++++++++++++++++-- .../GitExtensions.PluginManager.csproj | 4 ++ .../GitExtensions.PluginManager.csproj.user | 2 +- .../GitExtensions.PluginManager.nuspec | 3 +- .../Project.Publish.targets | 14 ++++++- .../ViewModels/Commands/TestCommands.cs | 4 +- 7 files changed, 61 insertions(+), 9 deletions(-) diff --git a/GitExtensions.PluginManager.sln b/GitExtensions.PluginManager.sln index 652962d..8093c3b 100644 --- a/GitExtensions.PluginManager.sln +++ b/GitExtensions.PluginManager.sln @@ -35,8 +35,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution appveyor.yml = appveyor.yml Directory.Build.props = Directory.Build.props Directory.Build.targets = Directory.Build.targets + Directory.Packages.props = Directory.Packages.props GitExtensions.settings = GitExtensions.settings - Packages.props = Packages.props README.md = README.md EndProjectSection EndProject diff --git a/appveyor.yml b/appveyor.yml index 0cd9921..112c272 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,5 +1,5 @@ # version format -version: 3.1.0.{build} +version: 3.1.1.{build} matrix: fast_finish: true @@ -71,16 +71,51 @@ test_script: dotnet test -c Release --no-restore --no-build --nologo --verbosity q --test-adapter-path:. --logger:Appveyor --logger:trx /bl:.\artifacts\logs\tests.binlog if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) } +after_test: +- ps: | + # do not sign artifacts for PR to release branches, publish dev builds instead + if (!$env:APPVEYOR_REPO_BRANCH.StartsWith("release/") -or $env:APPVEYOR_PULL_REQUEST_TITLE) { + Write-Host "[INFO]: Do not sign artifacts from PR to release branch" + Get-ChildItem .\artifacts\GitExtensions.PluginManager*.nupkg | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name } + Get-ChildItem .\artifacts\GitExtensions.PluginManager*.zip | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name } + Exit-AppVeyorBuild + return + } + else { + Write-Host "[INFO]: Prepare combined artifact for signing on release branch" + Write-Host "Creating combined build artifact ..." + $nupkg = (Resolve-Path .\artifacts\GitExtensions.PluginManager*.nupkg)[0].Path; + $zip = (Resolve-Path .\artifacts\GitExtensions.PluginManager*.zip)[0].Path; + $combined = ".\GitExtensions.PluginManager.$($env:APPVEYOR_BUILD_VERSION)$($env:version_suffix).combined-unsigned.zip" + Compress-Archive -LiteralPath $nupkg, $zip -CompressionLevel NoCompression -DestinationPath $combined -Force + } + #---------------------------------# # artifacts configuration # #---------------------------------# artifacts: -- path: .\artifacts\GitExtensions.PluginManager.*.zip -- path: .\artifacts\GitExtensions.PluginManager.*.nupkg +- path: .\GitExtensions.PluginManager.*.combined-unsigned.zip - path: .\artifacts\logs\*.binlog +#---------------------------------# +# artifacts deployment # +#---------------------------------# + +deploy: +- provider: Webhook + on: + ARTIFACT_SIGNING_ENABLED: true + url: https://app.signpath.io/API/v1/7c19b2cf-90f7-4d15-9b12-1b615f7c18c4/Integrations/AppVeyor?ProjectKey=gitextensions.pluginmanager&SigningPolicyKey=release-signing + on_build_success: true + on_build_failure: false + on_build_status_changed: false + method: POST + authorization: + secure: IlLI/MbhdzmXF/WB2G84zYsDWePXJqHBWDb1zBPxxXvGgx0WRxzMZxuBsvCOcZvbPTRF+UcGp0d5/HT8xZUEjA== + + # on build failure on_failure: - ps: | diff --git a/src/GitExtensions.PluginManager/GitExtensions.PluginManager.csproj b/src/GitExtensions.PluginManager/GitExtensions.PluginManager.csproj index bfbf6b9..cc203c4 100644 --- a/src/GitExtensions.PluginManager/GitExtensions.PluginManager.csproj +++ b/src/GitExtensions.PluginManager/GitExtensions.PluginManager.csproj @@ -24,6 +24,10 @@ + + + + $(GitExtensionsPath)\GitExtensions.Extensibility.dll diff --git a/src/GitExtensions.PluginManager/GitExtensions.PluginManager.csproj.user b/src/GitExtensions.PluginManager/GitExtensions.PluginManager.csproj.user index 90652fc..e7a903c 100644 --- a/src/GitExtensions.PluginManager/GitExtensions.PluginManager.csproj.user +++ b/src/GitExtensions.PluginManager/GitExtensions.PluginManager.csproj.user @@ -3,6 +3,6 @@ ..\..\..\gitextensions.shared latest AppVeyor - + $(GitExtensionsDownloadPath) diff --git a/src/GitExtensions.PluginManager/GitExtensions.PluginManager.nuspec b/src/GitExtensions.PluginManager/GitExtensions.PluginManager.nuspec index be019f5..58bd098 100644 --- a/src/GitExtensions.PluginManager/GitExtensions.PluginManager.nuspec +++ b/src/GitExtensions.PluginManager/GitExtensions.PluginManager.nuspec @@ -16,6 +16,7 @@ + - + \ No newline at end of file diff --git a/src/GitExtensions.PluginManager/Project.Publish.targets b/src/GitExtensions.PluginManager/Project.Publish.targets index 83b760a..59487da 100644 --- a/src/GitExtensions.PluginManager/Project.Publish.targets +++ b/src/GitExtensions.PluginManager/Project.Publish.targets @@ -13,17 +13,27 @@ --> - <_PackageManagerSourcePath>$([MSBuild]::NormalizePath('$(RepoRoot)', 'src', 'PackageManager.UI', 'bin', '$(Configuration)', '$(TargetFramework)', '$(PackageManagerUIRuntimeIdentifier)', 'publish', 'PackageManager.UI.exe')) - <_PackageManagerTargetPath>$(_PackageManagerFolder)\PackageManager.UI.exe + + <_PackageManagerSourceDir>$([MSBuild]::NormalizePath('$(RepoRoot)', 'src', 'PackageManager.UI', 'bin', '$(Configuration)', '$(TargetFramework)', '$(PackageManagerUIRuntimeIdentifier)', 'publish')) + <_PackageManagerSourcePath>$([MSBuild]::NormalizePath('$(_PackageManagerSourceDir)', 'PackageManager.UI.exe')) + <_PackageManagerRuntimeConfigSourcePath>$([MSBuild]::NormalizePath('$(_PackageManagerSourceDir)', '..', 'PackageManager.UI.runtimeconfig.json')) + + + <_PackageManagerTargetPath>$(_PackageManagerFolder)/PackageManager.UI.exe + <_PackageManagerRuntimeConfigTargetPath>$(_PackageManagerFolder)/PackageManager.UI.runtimeconfig.json + + latest AppVeyor - $(GitExtensionsDownloadPath) + $(GitExtensionsDownloadPath)