maui-linux/azure-pipelines.yml

169 строки
4.3 KiB
YAML

variables:
- name: DefaultBuildConfiguration
value: Debug
- name: DefaultBuildPlatform
value: 'any cpu'
- name: ApkName
value: AndroidControlGallery.AndroidControlGallery.apk
- name: IpaName
value: XamarinFormsControlGalleryiOS.ipa
- name: SolutionFile
value: Xamarin.Forms.sln
- name: major
value: 99
- name: minor
value: 0
- name: patch
value: 0
- name: buildversion
value: $[counter('$(Build.SourceBranchName)_counter', 1)]
resources:
repositories:
- repository: xamarin-templates
type: github
name: xamarin/yaml-templates
endpoint: xamarin
trigger:
branches:
include:
- master
- 3.*
- 4.*
paths:
exclude:
- README.md
pr:
- master
- 3.*
- 4.*
jobs:
- job: Phase_1
displayName: Prepare Build Phase
condition: succeeded()
pool:
name: $(winVmImage)
steps:
- template: build/steps/build-prepare.yml
- job: Phase_2
displayName: Build Windows Phase
dependsOn: Phase_1
condition: succeeded()
pool:
name: $(winVmImage)
strategy:
matrix:
debug:
BuildConfiguration: $(DefaultBuildConfiguration)
BuildPlatform: $(DefaultBuildPlatform)
release:
BuildConfiguration: 'Release'
BuildPlatform: $(DefaultBuildPlatform)
steps:
- template: build/steps/build-windows.yml
- job: Phase_3
displayName: Test Windows Phase
dependsOn: Phase_2
condition: succeeded()
pool:
name: $(winVmImage)
demands: vstest
strategy:
matrix:
debug:
BuildConfiguration: $(DefaultBuildConfiguration)
release:
BuildConfiguration: 'Release'
steps:
- template: build/steps/build-windows-test.yml
- template: build/steps/build-android.yml
parameters:
name: android_legacy
displayName: Build Android [Legacy Renderers]
vmImage: $(macOSVmImage)
targetFolder: Xamarin.Forms.ControlGallery.Android/legacyRenderers/
androidProjectArguments: '/t:"Rebuild;SignAndroidPackage"'
dependsOn: Phase_1
buildConfiguration: $(DefaultBuildConfiguration)
- template: build/steps/build-android.yml
parameters:
name: android_preappcompact
displayName: Build Android [Pre-AppCompat]
vmImage: $(macOSVmImage)
targetFolder: Xamarin.Forms.ControlGallery.Android/preAppCompat
androidProjectArguments: '/t:"Rebuild;SignAndroidPackage" /p:DefineConstants="TRACE DEBUG FORMS_APPLICATION_ACTIVITY APP"'
dependsOn: Phase_1
buildConfiguration: $(DefaultBuildConfiguration)
- template: build/steps/build-android.yml
parameters:
name: android_fast
displayName: Build Android [Fast Renderers]
vmImage: $(macOSVmImage)
targetFolder: Xamarin.Forms.ControlGallery.Android/newRenderers/
androidProjectArguments: '/t:"Rebuild;SignAndroidPackage" /p:DefineConstants="TRACE DEBUG TEST_EXPERIMENTAL_RENDERERS APP"'
dependsOn: Phase_1
buildConfiguration: $(DefaultBuildConfiguration)
- job: Phase_4
displayName: OSX Phase
dependsOn: Phase_1
condition: succeeded()
pool:
name: $(macOSVmImage)
demands:
- Agent.OS -equals darwin
- sh
- msbuild
- Xamarin.iOS
variables:
provisioningOSX : $(provisioning)
provisionator.osxPath : 'build/provisioning/provisioning.csx'
provisionator.signPath : 'build/provisioning/provisioning_sign.csx'
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
- job: Phase_5
displayName: Nuget Phase
dependsOn:
- Phase_3
- android_legacy
- android_preappcompact
- android_fast
condition: succeeded()
pool:
name: $(winVmImage)
variables:
FormsIdAppend: ''
buildConfiguration: $(DefaultBuildConfiguration)
steps:
- template: build/steps/build-nuget.yml
# 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
dependsOn: Phase_5
pool:
name: $(signVmImage)
variables:
signBuild: $[dependencies.Phase_1.outputs['prepare.signnuget']]
displayName: Sign Phase
steps:
- template: build/steps/build-sign.yml