Skip to content

Commit 6f834e0

Browse files
authored
CI check signatures (#382)
* Fix signing on Windows and macOS * Added signing verification steps to CI
1 parent 7ea9cf1 commit 6f834e0

File tree

4 files changed

+32
-13
lines changed

4 files changed

+32
-13
lines changed

.vsts-ci.yml

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ extends:
4141
stages:
4242
- stage: build
4343
displayName: Build
44+
4445
jobs:
4546
- template: /eng/common/templates-official/jobs/jobs.yml@self
4647
parameters:
@@ -99,8 +100,6 @@ extends:
99100
- name: _OfficialBuildArgs
100101
value: ''
101102
steps:
102-
- checkout: self
103-
clean: true
104103
- script: eng\common\cibuild.cmd
105104
-configuration $(_BuildConfig)
106105
-prepareMachine
@@ -112,11 +111,16 @@ extends:
112111
inputs:
113112
sourceFolder: 'artifacts/packages/$(_BuildConfig)/Shipping/'
114113
contents: '*.msi'
115-
targetFolder: '$(Build.ArtifactStagingDirectory)'
114+
targetFolder: '$(Build.ArtifactStagingDirectory)\artifacts'
115+
- task: MicroBuildCodesignVerify@3
116+
inputs:
117+
TargetFolders: '$(Build.ArtifactStagingDirectory)\artifacts'
118+
ExcludeSNVerify: true
119+
ApprovalListPathForCerts: eng\SignVerifyIgnore.txt
116120
- task: 1ES.PublishBuildArtifacts@1
117121
condition: and(eq(variables['system.pullrequest.isfork'], false), eq(variables['_BuildConfig'], 'Release'))
118122
inputs:
119-
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
123+
PathtoPublish: '$(Build.ArtifactStagingDirectory)\artifacts'
120124
ArtifactName: 'drop-windows'
121125
publishLocation: 'Container'
122126
parallel: true
@@ -132,28 +136,35 @@ extends:
132136
_RID: osx-arm64
133137
X64:
134138
_RID: osx-x64
139+
variables:
140+
- name: _BuildConfig
141+
value: Release
142+
- name: _SignType
143+
value: real
135144
steps:
136-
- checkout: self
137-
clean: true
138145
- script: eng/common/cibuild.sh
139-
--sign
140-
--configuration Release
146+
-sign
147+
--configuration $(_BuildConfig)
141148
--prepareMachine
142-
-p:RID=$(_RID) -p:DotNetSignType=real -p:TeamName=$(TeamName) -p:OfficialBuildId=$(Build.BuildNumber)
149+
-p:RID=$(_RID) -p:DotNetSignType=$(_SignType) -p:TeamName=$(TeamName) -p:OfficialBuildId=$(Build.BuildNumber)
143150
displayName: Build
151+
- script: |
152+
codesign -dv --verbose=4 artifacts/layout/dotnet-core-uninstall/dotnet-core-uninstall
153+
name: VerifySignature
154+
displayName: Verify Signature
144155
- task: ArchiveFiles@2
145156
condition: eq(variables['system.pullrequest.isfork'], false)
146157
inputs:
147158
rootFolderOrFile: 'artifacts/layout/dotnet-core-uninstall/'
148159
includeRootFolder: false
149160
archiveType: 'tar'
150161
tarCompression: 'gz'
151-
archiveFile: '$(Build.ArtifactStagingDirectory)/dotnet-core-uninstall.tar.gz'
162+
archiveFile: '$(Build.ArtifactStagingDirectory)/artifacts/dotnet-core-uninstall.tar.gz'
152163
replaceExistingArchive: true
153164
- task: 1ES.PublishBuildArtifacts@1
154165
condition: eq(variables['system.pullrequest.isfork'], false)
155166
inputs:
156-
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
167+
PathtoPublish: '$(Build.ArtifactStagingDirectory)/artifacts'
157168
ArtifactName: 'drop-$(_RID)'
158169
publishLocation: 'Container'
159170
parallel: true

eng/SignVerifyIgnore.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
**\*.xml,ignore unsigned .xml
2+
**\cab*.cab.cab,ignore unsigned .cab

eng/Signing.props

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
<Project>
22
<PropertyGroup>
3+
<DotNetCertificateName>MicrosoftDotNet500</DotNetCertificateName>
34
<UseDotNetCertificate>true</UseDotNetCertificate>
45
</PropertyGroup>
56

67
<ItemGroup Condition="'$(RID)' == 'win-x86'">
78
<FileExtensionSignInfo Include=".wixpdb" CertificateName="MicrosoftDotNet500" />
89
<ItemsToSign Include="$(ArtifactsShippingPackagesDir)**\*.wixpack.zip;
9-
$(ArtifactsDir)packages\**\dotnet-core-uninstall*.msi;" />
10+
$(ArtifactsDir)packages\**\dotnet-core-uninstall*.msi" />
1011
</ItemGroup>
1112

1213
<ItemGroup Condition="'$(RID)' == 'osx-x64' OR '$(RID)' == 'osx-arm64'">
Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
<Project>
22
<!-- Entitlements are needed but not automatically added for macOS. See https://github.com/dotnet/runtime/issues/113707 -->
33
<!-- This generates an ad-hoc signature that will later be resigned, but keeps the entitlements. -->
4-
<Target Name="AddMacEntitlements" AfterTargets="GenerateLayout">
4+
<ItemGroup>
5+
<PackageReference Include="Microsoft.VisualStudioEng.MicroBuild.Core" Version="$(MicrosoftVisualStudioEngMicroBuildCoreVersion)" />
6+
</ItemGroup>
7+
<Target Name="AddMacEntitlements"
8+
BeforeTargets="SignFiles"
9+
AfterTargets="GenerateLayout">
510
<Exec Command="codesign -s - -f --entitlements $(MSBuildThisFileDirectory)entitlements.plist $(ArtifactsDir)layout/dotnet-core-uninstall/dotnet-core-uninstall" />
611
</Target>
712
</Project>

0 commit comments

Comments
 (0)