From 335be1bdbead8f3b2f8502948c8f3bc0a618292d Mon Sep 17 00:00:00 2001 From: Marie Hoeger Date: Fri, 7 Sep 2018 16:05:16 -0700 Subject: [PATCH] Add strong name signing to webjobs extensions repo (#482) * add strong name signing to webjobs extensions repo * adding more public keys * only sign builds on PR merge * revert side-effect change of timer sample update --- Build.ps1 | 9 +++- appveyor.yml | 7 ++-- build/PublicKey.snk | Bin 0 -> 160 bytes build/common.props | 3 ++ .../Properties/AssemblyInfo.cs | 4 +- .../Properties/AssemblyInfo.cs | 4 +- .../Properties/AssemblyInfo.cs | 4 +- .../Properties/AssemblyInfo.cs | 4 +- .../Properties/AssemblyInfo.cs | 4 +- .../Properties/AssemblyInfo.cs | 2 +- .../Properties/AssemblyInfo.cs | 2 +- .../Properties/AssemblyInfo.cs | 2 +- .../Properties/AssemblyInfo.cs | 2 +- .../Properties/AssemblyInfo.cs | 2 +- .../Properties/AssemblyInfo.cs | 2 +- .../Properties/AssemblyInfo.cs | 2 +- .../Properties/AssemblyInfo.cs | 2 +- tools/PollSigningResults.ps1 | 39 ++++++++++++++++++ tools/RunSigningJob.ps1 | 19 +++++++++ 19 files changed, 90 insertions(+), 23 deletions(-) create mode 100644 build/PublicKey.snk create mode 100644 tools/PollSigningResults.ps1 create mode 100644 tools/RunSigningJob.ps1 diff --git a/Build.ps1 b/Build.ps1 index ec5329918..b5ff6a118 100644 --- a/Build.ps1 +++ b/Build.ps1 @@ -31,5 +31,12 @@ foreach ($project in $projects) $cmd += "--version-suffix", "-$packageSuffix" } - & dotnet $cmd + & dotnet $cmd +} + + ### Sign package if build is not a PR +$isPr = Test-Path env:APPVEYOR_PULL_REQUEST_NUMBER +if (-not $isPr) { + & ".\tools\RunSigningJob.ps1" + if (-not $?) { exit 1 } } \ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml index afcb047d6..5eac9fadd 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -27,10 +27,9 @@ build_script: $buildNumber = $env:APPVEYOR_BUILD_NUMBER Write-Host "No git tag found. Setting package suffix to '$buildNumber'" } - .\build.ps1 -packageSuffix "$buildNumber" + .\Build.ps1 -packageSuffix "$buildNumber" test_script: - ps: >- .\run-tests.ps1 -artifacts: -- path: buildoutput\*.nupkg - name: Packages \ No newline at end of file +on_finish: +- ps: .\tools\PollSigningResults.ps1 diff --git a/build/PublicKey.snk b/build/PublicKey.snk new file mode 100644 index 0000000000000000000000000000000000000000..695f1b38774e839e5b90059bfb7f32df1dff4223 GIT binary patch literal 160 zcmV;R0AK$ABme*efB*oL000060ssI2Bme+XQ$aBR1ONa50098C{E+7Ye`kjtcRG*W zi8#m|)B?I?xgZ^2Sw5D;l4TxtPwG;3)3^j?qDHjEteSTF{rM+4WI`v zCD?tsZ^;k+S&r1&HRMb=j738S=;J$tCKNrc$@P|lZMicrosoft Azure WebJobs AzureFunctions $(MSBuildThisFileDirectory)..\src.ruleset true + true + true + $(MSBuildThisFileDirectory)PublicKey.snk diff --git a/src/WebJobs.Extensions.CosmosDB/Properties/AssemblyInfo.cs b/src/WebJobs.Extensions.CosmosDB/Properties/AssemblyInfo.cs index fb9ed8619..972391980 100644 --- a/src/WebJobs.Extensions.CosmosDB/Properties/AssemblyInfo.cs +++ b/src/WebJobs.Extensions.CosmosDB/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] -[assembly: InternalsVisibleTo("Microsoft.Azure.WebJobs.Extensions.CosmosDB.Tests")] \ No newline at end of file +[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] +[assembly: InternalsVisibleTo("Microsoft.Azure.WebJobs.Extensions.CosmosDB.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")] \ No newline at end of file diff --git a/src/WebJobs.Extensions.Http/Properties/AssemblyInfo.cs b/src/WebJobs.Extensions.Http/Properties/AssemblyInfo.cs index 9b37c48ba..bd2ce655a 100644 --- a/src/WebJobs.Extensions.Http/Properties/AssemblyInfo.cs +++ b/src/WebJobs.Extensions.Http/Properties/AssemblyInfo.cs @@ -8,5 +8,5 @@ [assembly: ComVisible(false)] -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] -[assembly: InternalsVisibleTo("Microsoft.Azure.WebJobs.Extensions.Http.Tests")] +[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] +[assembly: InternalsVisibleTo("Microsoft.Azure.WebJobs.Extensions.Http.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")] diff --git a/src/WebJobs.Extensions.MobileApps/Properties/AssemblyInfo.cs b/src/WebJobs.Extensions.MobileApps/Properties/AssemblyInfo.cs index 306e8772d..6345dce3b 100644 --- a/src/WebJobs.Extensions.MobileApps/Properties/AssemblyInfo.cs +++ b/src/WebJobs.Extensions.MobileApps/Properties/AssemblyInfo.cs @@ -8,5 +8,5 @@ [assembly: ComVisible(false)] -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] -[assembly: InternalsVisibleTo("Microsoft.Azure.WebJobs.Extensions.MobileApps.Tests")] +[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] +[assembly: InternalsVisibleTo("Microsoft.Azure.WebJobs.Extensions.MobileApps.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")] diff --git a/src/WebJobs.Extensions.SendGrid/Properties/AssemblyInfo.cs b/src/WebJobs.Extensions.SendGrid/Properties/AssemblyInfo.cs index 14580b504..d43937f47 100644 --- a/src/WebJobs.Extensions.SendGrid/Properties/AssemblyInfo.cs +++ b/src/WebJobs.Extensions.SendGrid/Properties/AssemblyInfo.cs @@ -8,5 +8,5 @@ [assembly: ComVisible(false)] -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] -[assembly: InternalsVisibleTo("Microsoft.Azure.WebJobs.Extensions.SendGrid.Tests")] +[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] +[assembly: InternalsVisibleTo("Microsoft.Azure.WebJobs.Extensions.SendGrid.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")] diff --git a/src/WebJobs.Extensions.Twilio/Properties/AssemblyInfo.cs b/src/WebJobs.Extensions.Twilio/Properties/AssemblyInfo.cs index 38b515b17..b86bb564c 100644 --- a/src/WebJobs.Extensions.Twilio/Properties/AssemblyInfo.cs +++ b/src/WebJobs.Extensions.Twilio/Properties/AssemblyInfo.cs @@ -8,5 +8,5 @@ [assembly: ComVisible(false)] -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] -[assembly: InternalsVisibleTo("Microsoft.Azure.WebJobs.Extensions.Twilio.Tests")] +[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] +[assembly: InternalsVisibleTo("Microsoft.Azure.WebJobs.Extensions.Twilio.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")] diff --git a/src/WebJobs.Extensions/Properties/AssemblyInfo.cs b/src/WebJobs.Extensions/Properties/AssemblyInfo.cs index 38e9ded7e..430205022 100644 --- a/src/WebJobs.Extensions/Properties/AssemblyInfo.cs +++ b/src/WebJobs.Extensions/Properties/AssemblyInfo.cs @@ -3,4 +3,4 @@ using System.Runtime.CompilerServices; -[assembly: InternalsVisibleTo("Microsoft.Azure.WebJobs.Extensions.Tests")] \ No newline at end of file +[assembly: InternalsVisibleTo("Microsoft.Azure.WebJobs.Extensions.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")] \ No newline at end of file diff --git a/test/WebJobs.Extensions.CosmosDB.Tests/Properties/AssemblyInfo.cs b/test/WebJobs.Extensions.CosmosDB.Tests/Properties/AssemblyInfo.cs index 67c00ac72..a4c40a2a6 100644 --- a/test/WebJobs.Extensions.CosmosDB.Tests/Properties/AssemblyInfo.cs +++ b/test/WebJobs.Extensions.CosmosDB.Tests/Properties/AssemblyInfo.cs @@ -8,4 +8,4 @@ [assembly: ComVisible(false)] -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] +[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] diff --git a/test/WebJobs.Extensions.Http.Tests/Properties/AssemblyInfo.cs b/test/WebJobs.Extensions.Http.Tests/Properties/AssemblyInfo.cs index 67c00ac72..a4c40a2a6 100644 --- a/test/WebJobs.Extensions.Http.Tests/Properties/AssemblyInfo.cs +++ b/test/WebJobs.Extensions.Http.Tests/Properties/AssemblyInfo.cs @@ -8,4 +8,4 @@ [assembly: ComVisible(false)] -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] +[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] diff --git a/test/WebJobs.Extensions.MobileApps.Tests/Properties/AssemblyInfo.cs b/test/WebJobs.Extensions.MobileApps.Tests/Properties/AssemblyInfo.cs index 67c00ac72..a4c40a2a6 100644 --- a/test/WebJobs.Extensions.MobileApps.Tests/Properties/AssemblyInfo.cs +++ b/test/WebJobs.Extensions.MobileApps.Tests/Properties/AssemblyInfo.cs @@ -8,4 +8,4 @@ [assembly: ComVisible(false)] -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] +[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] diff --git a/test/WebJobs.Extensions.SendGrid.Tests/Properties/AssemblyInfo.cs b/test/WebJobs.Extensions.SendGrid.Tests/Properties/AssemblyInfo.cs index 67c00ac72..a4c40a2a6 100644 --- a/test/WebJobs.Extensions.SendGrid.Tests/Properties/AssemblyInfo.cs +++ b/test/WebJobs.Extensions.SendGrid.Tests/Properties/AssemblyInfo.cs @@ -8,4 +8,4 @@ [assembly: ComVisible(false)] -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] +[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] diff --git a/test/WebJobs.Extensions.Tests.Common/Properties/AssemblyInfo.cs b/test/WebJobs.Extensions.Tests.Common/Properties/AssemblyInfo.cs index 67c00ac72..a4c40a2a6 100644 --- a/test/WebJobs.Extensions.Tests.Common/Properties/AssemblyInfo.cs +++ b/test/WebJobs.Extensions.Tests.Common/Properties/AssemblyInfo.cs @@ -8,4 +8,4 @@ [assembly: ComVisible(false)] -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] +[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] diff --git a/test/WebJobs.Extensions.Tests/Properties/AssemblyInfo.cs b/test/WebJobs.Extensions.Tests/Properties/AssemblyInfo.cs index 67c00ac72..a4c40a2a6 100644 --- a/test/WebJobs.Extensions.Tests/Properties/AssemblyInfo.cs +++ b/test/WebJobs.Extensions.Tests/Properties/AssemblyInfo.cs @@ -8,4 +8,4 @@ [assembly: ComVisible(false)] -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] +[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] diff --git a/test/WebJobs.Extensions.Twilio.Tests/Properties/AssemblyInfo.cs b/test/WebJobs.Extensions.Twilio.Tests/Properties/AssemblyInfo.cs index 67c00ac72..a4c40a2a6 100644 --- a/test/WebJobs.Extensions.Twilio.Tests/Properties/AssemblyInfo.cs +++ b/test/WebJobs.Extensions.Twilio.Tests/Properties/AssemblyInfo.cs @@ -8,4 +8,4 @@ [assembly: ComVisible(false)] -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] +[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] diff --git a/tools/PollSigningResults.ps1 b/tools/PollSigningResults.ps1 new file mode 100644 index 000000000..6d1211ea5 --- /dev/null +++ b/tools/PollSigningResults.ps1 @@ -0,0 +1,39 @@ +$isPr = Test-Path env:APPVEYOR_PULL_REQUEST_NUMBER +$directoryPath = Split-Path $MyInvocation.MyCommand.Path -Parent + +if (-not $isPr -and $env:SkipAssemblySigning -ne "true") { + $timeout = new-timespan -Minutes 5 + $sw = [diagnostics.stopwatch]::StartNew(); + $polling = $true; + $ctx = New-AzureStorageContext $env:FILES_ACCOUNT_NAME $env:FILES_ACCOUNT_KEY + $blob = $null; + while ($sw.elapsed -lt $timeout -and $polling) { + $blob = Get-AzureStorageBlob "$env:APPVEYOR_BUILD_VERSION.zip" "azure-webjobs-extensions-signed" -Context $ctx -ErrorAction Ignore + if (-not $blob) { + "${sw.elapsed} elapsed, polling..." + } + else { + "Jenkins artifacts found" + $polling = $false; + } + Start-Sleep -Seconds 5 + } + + if ($polling) { + "No jenkins artifacts found, investigate job at https://funkins-master.redmond.corp.microsoft.com/job/Build_signing/" + exit(1); + } + + Remove-Item "$directoryPath/../buildoutput" -Recurse -Force + + Mkdir "$directoryPath/../buildoutput" + + Get-AzureStorageBlobContent "$env:APPVEYOR_BUILD_VERSION.zip" "azure-webjobs-extensions-signed" -Destination "$directoryPath/../buildoutput/signed.zip" -Context $ctx + + Expand-Archive "$directoryPath/../buildoutput/signed.zip" "$directoryPath/../buildoutput/signed" + + Get-ChildItem "$directoryPath/../buildoutput/signed" | % { + Push-AppveyorArtifact $_.FullName + } + if (-not $?) { exit 1 } +} \ No newline at end of file diff --git a/tools/RunSigningJob.ps1 b/tools/RunSigningJob.ps1 new file mode 100644 index 000000000..ef7baf370 --- /dev/null +++ b/tools/RunSigningJob.ps1 @@ -0,0 +1,19 @@ +$isPr = Test-Path env:APPVEYOR_PULL_REQUEST_NUMBER +$directoryPath = Split-Path $MyInvocation.MyCommand.Path -Parent + +if (-not $isPr) { + Compress-Archive $directoryPath\..\buildoutput\* $directoryPath\..\buildoutput\tosign.zip + + if ($env:SkipAssemblySigning -eq "true") { + "Assembly signing disabled. Skipping signing process." + exit 0; + } + + $ctx = New-AzureStorageContext $env:FILES_ACCOUNT_NAME $env:FILES_ACCOUNT_KEY + Set-AzureStorageBlobContent "$directoryPath/../buildoutput/tosign.zip" "azure-webjobs-extensions" -Blob "$env:APPVEYOR_BUILD_VERSION.zip" -Context $ctx + + $queue = Get-AzureStorageQueue "signing-jobs" -Context $ctx + + $messageBody = "SignNupkgs;azure-webjobs-extensions;$env:APPVEYOR_BUILD_VERSION.zip" + $queue.CloudQueue.AddMessage($messageBody) +} \ No newline at end of file