Skip to content

Commit 6a0e863

Browse files
committed
(#152) Only run signing steps on Windows
All of the signing steps in Chocolatey.Cake.Recipe require one of two things. Either: - usage of Windows PowerShell - usage of signtool.exe (with a hard coded path in Windows) Neither of these things are found on a Linux/Mac build runner. As such we need to add criteria to only run tasks on Windows. This criteria wasn't "needed" previously, since there was another criteria present to only run when on TeamCity, or the signing certificate was in place. When the new verify task, which doesn't have this same criteria, was added, it started failing the build, as the other tasks weren't being explicit about this requirement. This commit addresses this underlying problem, by adding an explicit criteria to each step related to signing to ensure running on Windows so that it isn't forgotten about in the future.
1 parent 8a699ac commit 6a0e863

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

Chocolatey.Cake.Recipe/Content/sign.cake

+4
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
// limitations under the License.
1515

1616
BuildParameters.Tasks.VerifyPowerShellScriptsTask = Task("Verify-PowerShellScripts")
17+
.WithCriteria(() => BuildParameters.BuildAgentOperatingSystem == PlatformFamily.Windows, "Skipping due to not running on Windows")
1718
.WithCriteria(() => BuildParameters.ShouldVerifyPowerShellScripts, "Skipping since verifying PowerShell scripts has been disabled")
1819
.Does(() =>
1920
{
@@ -45,6 +46,7 @@ BuildParameters.Tasks.VerifyPowerShellScriptsTask = Task("Verify-PowerShellScrip
4546
});
4647

4748
BuildParameters.Tasks.SignPowerShellScriptsTask = Task("Sign-PowerShellScripts")
49+
.WithCriteria(() => BuildParameters.BuildAgentOperatingSystem == PlatformFamily.Windows, "Skipping due to not running on Windows")
4850
.WithCriteria(() => (!string.IsNullOrWhiteSpace(BuildParameters.CertificateFilePath) && FileExists(BuildParameters.CertificateFilePath)) || BuildSystem.IsRunningOnTeamCity, "Skipping because unable to find certificate, and not running on TeamCity")
4951
.WithCriteria(() => BuildParameters.ShouldAuthenticodeSignPowerShellScripts, "Skipping since authenticode signing of PowerShell scripts has been disabled")
5052
.Does(() =>
@@ -105,6 +107,7 @@ BuildParameters.Tasks.SignPowerShellScriptsTask = Task("Sign-PowerShellScripts")
105107
});
106108

107109
BuildParameters.Tasks.SignAssembliesTask = Task("Sign-Assemblies")
110+
.WithCriteria(() => BuildParameters.BuildAgentOperatingSystem == PlatformFamily.Windows, "Skipping due to not running on Windows")
108111
.WithCriteria(() => (!string.IsNullOrWhiteSpace(BuildParameters.CertificateFilePath) && FileExists(BuildParameters.CertificateFilePath)) || BuildSystem.IsRunningOnTeamCity, "Skipping because unable to find certificate, and not running on TeamCity")
109112
.WithCriteria(() => BuildParameters.ShouldAuthenticodeSignOutputAssemblies, "Skipping since authenticode signing of output assemblies has been disabled")
110113
.Does(() =>
@@ -153,6 +156,7 @@ BuildParameters.Tasks.SignAssembliesTask = Task("Sign-Assemblies")
153156
});
154157

155158
BuildParameters.Tasks.SignMsisTask = Task("Sign-Msis")
159+
.WithCriteria(() => BuildParameters.BuildAgentOperatingSystem == PlatformFamily.Windows, "Skipping due to not running on Windows")
156160
.WithCriteria(() => (!string.IsNullOrWhiteSpace(BuildParameters.CertificateFilePath) && FileExists(BuildParameters.CertificateFilePath)) || BuildSystem.IsRunningOnTeamCity, "Skipping because unable to find certificate, and not running on TeamCity")
157161
.WithCriteria(() => BuildParameters.ShouldAuthenticodeSignMsis, "Skipping since authenticode signing of msi's has been disabled")
158162
.Does(() =>

0 commit comments

Comments
 (0)