Skip to content
This repository was archived by the owner on May 1, 2024. It is now read-only.

Commit 3f96818

Browse files
authored
[Build] Fixes to yaml public build (#5948)
* [Build] Don't sign on public builds * [Build] Use vmImages * [Build] Fix pool specification * [Build] Revert back to pool name * [Build] add osx demands * [Build] Fix indentation * [Build] Add more demands * [Build] Try using certs * [Build] Try use name * cert password * [Build] Add endpoint back * [Build] Add VSTS feed as variable * [Build] Add signing stuff * Fix * [Build] Try simplify Windows build * [Build] Publish android apps * [Build] Add signVmImage
1 parent 4ab075f commit 3f96818

6 files changed

+43
-51
lines changed

azure-pipelines.yml

+21-19
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
displayName: Prepare Build Phase
4646
condition: succeeded()
4747
pool:
48-
name: Hosted VS2017
48+
name: $(winVmImage)
4949
steps:
5050
- template: build/steps/build-prepare.yml
5151

@@ -54,8 +54,7 @@ jobs:
5454
dependsOn: Phase_1
5555
condition: succeeded()
5656
pool:
57-
name: Hosted VS2017
58-
demands: msbuild
57+
name: $(winVmImage)
5958
strategy:
6059
matrix:
6160
debug:
@@ -72,7 +71,7 @@ jobs:
7271
dependsOn: Phase_2
7372
condition: succeeded()
7473
pool:
75-
name: Hosted VS2017
74+
name: $(winVmImage)
7675
demands: vstest
7776
strategy:
7877
matrix:
@@ -87,7 +86,7 @@ jobs:
8786
parameters:
8887
name: android_legacy
8988
displayName: Build Android [Legacy Renderers]
90-
vmImage: Hosted Mac Internal
89+
vmImage: $(macOSVmImage)
9190
targetFolder: Xamarin.Forms.ControlGallery.Android/legacyRenderers/
9291
androidProjectArguments: '/t:"Rebuild;SignAndroidPackage"'
9392
dependsOn: Phase_1
@@ -97,7 +96,7 @@ jobs:
9796
parameters:
9897
name: android_preappcompact
9998
displayName: Build Android [Pre-AppCompat]
100-
vmImage: Hosted Mac Internal
99+
vmImage: $(macOSVmImage)
101100
targetFolder: Xamarin.Forms.ControlGallery.Android/preAppCompat
102101
androidProjectArguments: '/t:"Rebuild;SignAndroidPackage" /p:DefineConstants="TRACE DEBUG FORMS_APPLICATION_ACTIVITY APP"'
103102
dependsOn: Phase_1
@@ -107,7 +106,7 @@ jobs:
107106
parameters:
108107
name: android_fast
109108
displayName: Build Android [Fast Renderers]
110-
vmImage: Hosted Mac Internal
109+
vmImage: $(macOSVmImage)
111110
targetFolder: Xamarin.Forms.ControlGallery.Android/newRenderers/
112111
androidProjectArguments: '/t:"Rebuild;SignAndroidPackage" /p:DefineConstants="TRACE DEBUG TEST_EXPERIMENTAL_RENDERERS APP"'
113112
dependsOn: Phase_1
@@ -118,7 +117,7 @@ jobs:
118117
dependsOn: Phase_1
119118
condition: succeeded()
120119
pool:
121-
name: Hosted Mac Internal
120+
name: $(macOSVmImage)
122121
demands:
123122
- Agent.OS -equals darwin
124123
- sh
@@ -131,6 +130,8 @@ jobs:
131130
buildConfiguration: $(DefaultBuildConfiguration)
132131
slnPath: $(SolutionFile)
133132
nugetVersion: 4.8.1
133+
iOSCertSecureFileName: 'Xamarin Forms iOS Certificate.p12'
134+
iOSProvisioningSecureFileName: 'Xamarin Forms iOS Provisioning.mobileprovision'
134135
steps:
135136
- template: build/steps/build-osx.yml
136137

@@ -143,24 +144,25 @@ jobs:
143144
- android_fast
144145
condition: succeeded()
145146
pool:
146-
name: Hosted VS2017
147-
demands: DotNetFramework
147+
name: $(winVmImage)
148148
variables:
149149
FormsIdAppend: ''
150150
buildConfiguration: $(DefaultBuildConfiguration)
151151
steps:
152152
- template: build/steps/build-nuget.yml
153153

154-
- job: Phase_6
155-
displayName: Sign Phase
156-
dependsOn: Phase_5
157-
pool:
158-
name: VSEng-Xamarin-Forms
159-
variables:
160-
signBuild: $[dependencies.Phase_1.outputs['prepare.signnuget']]
154+
# only sign the packages when running on Windows, and using the private server which has the certificates
155+
- ${{ if eq(variables['System.TeamProject'], 'devdiv') }}:
156+
- job: Phase_6
161157
displayName: Sign Phase
162-
steps:
163-
- template: build/steps/build-sign.yml
158+
dependsOn: Phase_5
159+
pool:
160+
name: $(signVmImage)
161+
variables:
162+
signBuild: $[dependencies.Phase_1.outputs['prepare.signnuget']]
163+
displayName: Sign Phase
164+
steps:
165+
- template: build/steps/build-sign.yml
164166

165167

166168

build/steps/build-android.yml

+7
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ parameters:
22
name: '' # in the form type_platform_host
33
displayName: '' # the human name
44
vmImage: '' # the VM image
5+
vmPool: 'Hosted Mac Internal' # the VM pool
56
targetFolder: '' # the bootstrapper target
67
dependsOn: [] # the dependiencies
78
preBuildSteps: [] # any steps to run before the build
@@ -64,3 +65,9 @@ jobs:
6465
${{ parameters.targetFolder }}/$(ApkName)
6566
TargetFolder: ${{ parameters.apkTargetFolder }}
6667
CleanTargetFolder: true
68+
69+
- task: PublishBuildArtifacts@1
70+
displayName: 'Publish Artifact: AndroidApps'
71+
inputs:
72+
PathtoPublish: '$(build.artifactstagingdirectory)'
73+
ArtifactName: OSXArtifacts

build/steps/build-nuget.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ steps:
5959
inputs:
6060
command: push
6161
packagesToPush: '$(Build.ArtifactStagingDirectory)/nuget/debug/*.nupkg'
62-
publishVstsFeed: '13fa23d7-5f2f-47f1-a87c-45a9f173dd74'
62+
publishVstsFeed: '$(VstsFeed)'
6363
allowPackageConflicts: true
6464

6565

build/steps/build-osx.yml

+10-18
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,6 @@
11
steps:
22
- checkout: self
33

4-
- task: xamops.azdevex.provisionator-task.provisionator@1
5-
displayName: Provisionate keychain
6-
condition: eq(variables['provisioningSign'], 'true')
7-
inputs:
8-
provisioning_extra_args: keychain set $(p12CertName) $(la.p12.Password)
9-
10-
- task: xamops.azdevex.provisionator-task.provisionator@1
11-
displayName: Provisionate Sign iOS
12-
condition: eq(variables['provisioningSign'], 'true')
13-
env:
14-
APPLECODESIGNIDENTITY: $(AppleCodesignIdentity)
15-
APPLECODESIGNIDENTITYURL: $(AppleCodesignIdentityUrl)
16-
APPLECODESIGNPROFILEURL: $(AppleCodesignProfileUrl)
17-
inputs:
18-
provisioning_script: $(provisionator.signPath)
19-
provisioning_extra_args: $(provisionator.extraArguments)
20-
214
- task: xamops.azdevex.provisionator-task.provisionator@1
225
displayName: Provisionate Xamarin
236
condition: eq(variables['provisioningOSX'], 'true')
@@ -36,12 +19,21 @@ steps:
3619
inputs:
3720
restoreSolution: $(slnPath)
3821

39-
4022
- task: MSBuild@1
4123
displayName: 'Build solution Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj'
4224
inputs:
4325
solution: Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj
4426

27+
- task: InstallAppleCertificate@2
28+
displayName: 'Install an Apple certificate'
29+
inputs:
30+
certSecureFile: 'Xamarin Forms iOS Certificate.p12'
31+
certPwd: $(P12password)
32+
33+
- task: InstallAppleProvisioningProfile@1
34+
displayName: 'Install an Apple provisioning profile'
35+
inputs:
36+
provProfileSecureFile: 'Xamarin Forms iOS Provisioning.mobileprovision'
4537

4638
- task: XamariniOS@2
4739
displayName: 'Build Xamarin.iOS solution $(slnPath)'

build/steps/build-sign.yml

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ parameters:
99
signBuild: false
1010

1111
steps:
12+
- checkout: none
1213
- template: sign-artifacts.yml@xamarin-templates
1314
parameters:
1415
targetFolder: $(Build.ArtifactStagingDirectory)/nuget/signed

build/steps/build-windows.yml

+3-13
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,17 @@ steps:
77
- task: NuGetCommand@2
88
displayName: 'NuGet restore'
99
inputs:
10-
restoreSolution: Xamarin.Forms.sln
11-
10+
restoreSolution: $(SolutionFile)
1211

1312
- task: MSBuild@1
14-
displayName: 'Build solution Xamarin.Forms.sln'
13+
displayName: 'Build solution'
1514
inputs:
16-
solution: Xamarin.Forms.sln
17-
msbuildVersion: 15.0
15+
solution: $(SolutionFile)
1816
platform: '$(BuildPlatform)'
1917
configuration: '$(BuildConfiguration)'
2018
msbuildArguments: '/nowarn:VSX1000 /p:CreateAllAndroidTargets=true'
2119
clean: true
2220

23-
24-
- task: DeleteFiles@1
25-
displayName: 'Delete files from $(Build.ArtifactStagingDirectory)'
26-
inputs:
27-
SourceFolder: '$(Build.ArtifactStagingDirectory)'
28-
Contents: '**/*'
29-
30-
3121
- task: CopyFiles@2
3222
displayName: 'Copy Files dlls'
3323
inputs:

0 commit comments

Comments
 (0)