From 3f968189d7a7204f4fb41b9979244fc5c6d76868 Mon Sep 17 00:00:00 2001 From: Rui Marinho Date: Thu, 18 Apr 2019 16:14:47 +0100 Subject: [PATCH] =?utf8?q?[Build]=C2=A0Fixes=20to=20yaml=20public=20build?= =?utf8?q?=20(#5948)?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * [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 --- azure-pipelines.yml | 40 +++++++++++++++++++++------------------- build/steps/build-android.yml | 7 +++++++ build/steps/build-nuget.yml | 2 +- build/steps/build-osx.yml | 28 ++++++++++------------------ build/steps/build-sign.yml | 1 + build/steps/build-windows.yml | 16 +++------------- 6 files changed, 43 insertions(+), 51 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index d70581e..d9ded3f 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -45,7 +45,7 @@ jobs: displayName: Prepare Build Phase condition: succeeded() pool: - name: Hosted VS2017 + name: $(winVmImage) steps: - template: build/steps/build-prepare.yml @@ -54,8 +54,7 @@ jobs: dependsOn: Phase_1 condition: succeeded() pool: - name: Hosted VS2017 - demands: msbuild + name: $(winVmImage) strategy: matrix: debug: @@ -72,7 +71,7 @@ jobs: dependsOn: Phase_2 condition: succeeded() pool: - name: Hosted VS2017 + name: $(winVmImage) demands: vstest strategy: matrix: @@ -87,7 +86,7 @@ jobs: parameters: name: android_legacy displayName: Build Android [Legacy Renderers] - vmImage: Hosted Mac Internal + vmImage: $(macOSVmImage) targetFolder: Xamarin.Forms.ControlGallery.Android/legacyRenderers/ androidProjectArguments: '/t:"Rebuild;SignAndroidPackage"' dependsOn: Phase_1 @@ -97,7 +96,7 @@ jobs: parameters: name: android_preappcompact displayName: Build Android [Pre-AppCompat] - vmImage: Hosted Mac Internal + vmImage: $(macOSVmImage) targetFolder: Xamarin.Forms.ControlGallery.Android/preAppCompat androidProjectArguments: '/t:"Rebuild;SignAndroidPackage" /p:DefineConstants="TRACE DEBUG FORMS_APPLICATION_ACTIVITY APP"' dependsOn: Phase_1 @@ -107,7 +106,7 @@ jobs: parameters: name: android_fast displayName: Build Android [Fast Renderers] - vmImage: Hosted Mac Internal + vmImage: $(macOSVmImage) targetFolder: Xamarin.Forms.ControlGallery.Android/newRenderers/ androidProjectArguments: '/t:"Rebuild;SignAndroidPackage" /p:DefineConstants="TRACE DEBUG TEST_EXPERIMENTAL_RENDERERS APP"' dependsOn: Phase_1 @@ -118,7 +117,7 @@ jobs: dependsOn: Phase_1 condition: succeeded() pool: - name: Hosted Mac Internal + name: $(macOSVmImage) demands: - Agent.OS -equals darwin - sh @@ -131,6 +130,8 @@ jobs: buildConfiguration: $(DefaultBuildConfiguration) slnPath: $(SolutionFile) nugetVersion: 4.8.1 + iOSCertSecureFileName: 'Xamarin Forms iOS Certificate.p12' + iOSProvisioningSecureFileName: 'Xamarin Forms iOS Provisioning.mobileprovision' steps: - template: build/steps/build-osx.yml @@ -143,24 +144,25 @@ jobs: - android_fast condition: succeeded() pool: - name: Hosted VS2017 - demands: DotNetFramework + name: $(winVmImage) variables: FormsIdAppend: '' buildConfiguration: $(DefaultBuildConfiguration) steps: - template: build/steps/build-nuget.yml -- job: Phase_6 - displayName: Sign Phase - dependsOn: Phase_5 - pool: - name: VSEng-Xamarin-Forms - variables: - signBuild: $[dependencies.Phase_1.outputs['prepare.signnuget']] + # only sign the packages when running on Windows, and using the private server which has the certificates +- ${{ if eq(variables['System.TeamProject'], 'devdiv') }}: + - job: Phase_6 displayName: Sign Phase - steps: - - template: build/steps/build-sign.yml + dependsOn: Phase_5 + pool: + name: $(signVmImage) + variables: + signBuild: $[dependencies.Phase_1.outputs['prepare.signnuget']] + displayName: Sign Phase + steps: + - template: build/steps/build-sign.yml diff --git a/build/steps/build-android.yml b/build/steps/build-android.yml index ebc7a39..1bb0567 100644 --- a/build/steps/build-android.yml +++ b/build/steps/build-android.yml @@ -2,6 +2,7 @@ parameters: name: '' # in the form type_platform_host displayName: '' # the human name vmImage: '' # the VM image + vmPool: 'Hosted Mac Internal' # the VM pool targetFolder: '' # the bootstrapper target dependsOn: [] # the dependiencies preBuildSteps: [] # any steps to run before the build @@ -64,3 +65,9 @@ jobs: ${{ parameters.targetFolder }}/$(ApkName) TargetFolder: ${{ parameters.apkTargetFolder }} CleanTargetFolder: true + + - task: PublishBuildArtifacts@1 + displayName: 'Publish Artifact: AndroidApps' + inputs: + PathtoPublish: '$(build.artifactstagingdirectory)' + ArtifactName: OSXArtifacts diff --git a/build/steps/build-nuget.yml b/build/steps/build-nuget.yml index 2b657eb..ebce7b2 100644 --- a/build/steps/build-nuget.yml +++ b/build/steps/build-nuget.yml @@ -59,7 +59,7 @@ steps: inputs: command: push packagesToPush: '$(Build.ArtifactStagingDirectory)/nuget/debug/*.nupkg' - publishVstsFeed: '13fa23d7-5f2f-47f1-a87c-45a9f173dd74' + publishVstsFeed: '$(VstsFeed)' allowPackageConflicts: true diff --git a/build/steps/build-osx.yml b/build/steps/build-osx.yml index c822b3c..0058e0c 100644 --- a/build/steps/build-osx.yml +++ b/build/steps/build-osx.yml @@ -2,23 +2,6 @@ steps: - checkout: self - task: xamops.azdevex.provisionator-task.provisionator@1 - displayName: Provisionate keychain - condition: eq(variables['provisioningSign'], 'true') - inputs: - provisioning_extra_args: keychain set $(p12CertName) $(la.p12.Password) - - - task: xamops.azdevex.provisionator-task.provisionator@1 - displayName: Provisionate Sign iOS - condition: eq(variables['provisioningSign'], 'true') - env: - APPLECODESIGNIDENTITY: $(AppleCodesignIdentity) - APPLECODESIGNIDENTITYURL: $(AppleCodesignIdentityUrl) - APPLECODESIGNPROFILEURL: $(AppleCodesignProfileUrl) - inputs: - provisioning_script: $(provisionator.signPath) - provisioning_extra_args: $(provisionator.extraArguments) - - - task: xamops.azdevex.provisionator-task.provisionator@1 displayName: Provisionate Xamarin condition: eq(variables['provisioningOSX'], 'true') inputs: @@ -36,12 +19,21 @@ steps: inputs: restoreSolution: $(slnPath) - - task: MSBuild@1 displayName: 'Build solution Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj' inputs: solution: Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj + - task: InstallAppleCertificate@2 + displayName: 'Install an Apple certificate' + inputs: + certSecureFile: 'Xamarin Forms iOS Certificate.p12' + certPwd: $(P12password) + + - task: InstallAppleProvisioningProfile@1 + displayName: 'Install an Apple provisioning profile' + inputs: + provProfileSecureFile: 'Xamarin Forms iOS Provisioning.mobileprovision' - task: XamariniOS@2 displayName: 'Build Xamarin.iOS solution $(slnPath)' diff --git a/build/steps/build-sign.yml b/build/steps/build-sign.yml index c53be58..a4b3cbd 100644 --- a/build/steps/build-sign.yml +++ b/build/steps/build-sign.yml @@ -9,6 +9,7 @@ parameters: signBuild: false steps: + - checkout: none - template: sign-artifacts.yml@xamarin-templates parameters: targetFolder: $(Build.ArtifactStagingDirectory)/nuget/signed diff --git a/build/steps/build-windows.yml b/build/steps/build-windows.yml index a4c52ab..ce0b168 100644 --- a/build/steps/build-windows.yml +++ b/build/steps/build-windows.yml @@ -7,27 +7,17 @@ steps: - task: NuGetCommand@2 displayName: 'NuGet restore' inputs: - restoreSolution: Xamarin.Forms.sln - + restoreSolution: $(SolutionFile) - task: MSBuild@1 - displayName: 'Build solution Xamarin.Forms.sln' + displayName: 'Build solution' inputs: - solution: Xamarin.Forms.sln - msbuildVersion: 15.0 + solution: $(SolutionFile) platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' msbuildArguments: '/nowarn:VSX1000 /p:CreateAllAndroidTargets=true' clean: true - - - task: DeleteFiles@1 - displayName: 'Delete files from $(Build.ArtifactStagingDirectory)' - inputs: - SourceFolder: '$(Build.ArtifactStagingDirectory)' - Contents: '**/*' - - - task: CopyFiles@2 displayName: 'Copy Files dlls' inputs: -- 2.7.4