2019-02-05 06:22:35 +03:00
|
|
|
trigger:
|
|
|
|
- master
|
|
|
|
|
|
|
|
variables:
|
2019-02-11 21:21:23 +03:00
|
|
|
FEATURE_NAME_PREFIX: 'feature/'
|
2019-02-05 06:22:35 +03:00
|
|
|
VERBOSITY: normal
|
|
|
|
GIT_SHA: $(Build.SourceVersion)
|
|
|
|
GIT_BRANCH_NAME: $(Build.SourceBranchName)
|
2019-02-11 21:21:23 +03:00
|
|
|
BUILD_NUMBER: $[counter('$(Build.SourceBranchName)_counter', 1)]
|
|
|
|
FEATURE_NAME: ''
|
2019-02-05 06:22:35 +03:00
|
|
|
BASE_LINUX_PACKAGES: curl mono-complete msbuild
|
|
|
|
NATIVE_LINUX_PACKAGES: $(BASE_LINUX_PACKAGES) python git libfontconfig1-dev clang-3.8 make
|
|
|
|
TIZEN_LINUX_PACKAGES: $(BASE_LINUX_PACKAGES) python git openjdk-8-jdk zip libxcb-xfixes0 libxcb-render-util0 libwebkitgtk-1.0-0 libxcb-image0 acl libsdl1.2debian libv4l-0 libxcb-randr0 libxcb-shape0 libxcb-icccm4 libsm6 gettext rpm2cpio cpio bridge-utils openvpn
|
|
|
|
MANAGED_LINUX_PACKAGES: $(BASE_LINUX_PACKAGES) dotnet-sdk-2.1 ttf-ancient-fonts
|
2019-02-09 21:23:09 +03:00
|
|
|
MONO_VERSION: 5_16_0
|
|
|
|
XCODE_VERSION: 10.1
|
2019-02-05 06:22:35 +03:00
|
|
|
|
2019-02-21 00:48:56 +03:00
|
|
|
resources:
|
|
|
|
repositories:
|
|
|
|
- repository: xamarin-templates
|
|
|
|
type: github
|
|
|
|
name: xamarin/yaml-templates
|
|
|
|
endpoint: xamarin
|
|
|
|
|
2019-02-05 06:22:35 +03:00
|
|
|
jobs:
|
2019-02-06 01:00:48 +03:00
|
|
|
|
2019-02-09 21:23:09 +03:00
|
|
|
# NATIVE JOBS - WINDOWS
|
|
|
|
- template: azure-templates-bootstrapper.yml
|
|
|
|
parameters:
|
|
|
|
name: native_android_windows
|
|
|
|
displayName: Build Native Android (Windows)
|
2019-02-05 06:22:35 +03:00
|
|
|
vmImage: vs2017-win2016
|
2019-02-09 21:23:09 +03:00
|
|
|
target: externals-android
|
|
|
|
- template: azure-templates-bootstrapper.yml
|
|
|
|
parameters:
|
|
|
|
name: native_tizen_windows
|
|
|
|
displayName: Build Native Tizen (Windows)
|
2019-02-05 06:22:35 +03:00
|
|
|
vmImage: vs2017-win2016
|
2019-02-09 21:23:09 +03:00
|
|
|
target: externals-tizen
|
|
|
|
- template: azure-templates-bootstrapper.yml
|
|
|
|
parameters:
|
|
|
|
name: native_uwp_windows
|
|
|
|
displayName: Build Native UWP (Windows)
|
2019-02-05 06:22:35 +03:00
|
|
|
vmImage: vs2017-win2016
|
2019-02-09 21:23:09 +03:00
|
|
|
target: externals-uwp
|
|
|
|
- template: azure-templates-bootstrapper.yml
|
|
|
|
parameters:
|
|
|
|
name: native_win32_windows
|
|
|
|
displayName: Build Native Win32 (Windows)
|
2019-02-05 06:22:35 +03:00
|
|
|
vmImage: vs2017-win2016
|
2019-02-09 21:23:09 +03:00
|
|
|
target: externals-windows
|
2019-02-05 06:22:35 +03:00
|
|
|
|
2019-02-09 21:23:09 +03:00
|
|
|
# NATIVE JOBS - MAC
|
|
|
|
- template: azure-templates-bootstrapper.yml
|
|
|
|
parameters:
|
|
|
|
name: native_android_macos
|
|
|
|
displayName: Build Native Android (macOS)
|
2019-02-05 06:22:35 +03:00
|
|
|
vmImage: macos-10.13
|
2019-02-09 21:23:09 +03:00
|
|
|
target: externals-android
|
|
|
|
- template: azure-templates-bootstrapper.yml
|
|
|
|
parameters:
|
|
|
|
name: native_ios_macos
|
|
|
|
displayName: Build Native iOS (macOS)
|
2019-02-05 06:22:35 +03:00
|
|
|
vmImage: macos-10.13
|
2019-02-09 21:23:09 +03:00
|
|
|
target: externals-ios
|
|
|
|
- template: azure-templates-bootstrapper.yml
|
|
|
|
parameters:
|
|
|
|
name: native_macos_macos
|
|
|
|
displayName: Build Native macOS (macOS)
|
2019-02-05 06:22:35 +03:00
|
|
|
vmImage: macos-10.13
|
2019-02-09 21:23:09 +03:00
|
|
|
target: externals-macos
|
|
|
|
- template: azure-templates-bootstrapper.yml
|
|
|
|
parameters:
|
|
|
|
name: native_tizen_macos
|
|
|
|
displayName: Build Native Tizen (macOS)
|
2019-02-05 06:22:35 +03:00
|
|
|
vmImage: macos-10.13
|
2019-02-09 21:23:09 +03:00
|
|
|
target: externals-tizen
|
|
|
|
- template: azure-templates-bootstrapper.yml
|
|
|
|
parameters:
|
|
|
|
name: native_tvos_macos
|
|
|
|
displayName: Build Native tvOS (macOS)
|
2019-02-05 06:22:35 +03:00
|
|
|
vmImage: macos-10.13
|
2019-02-09 21:23:09 +03:00
|
|
|
target: externals-tvos
|
|
|
|
- template: azure-templates-bootstrapper.yml
|
|
|
|
parameters:
|
|
|
|
name: native_watchos_macos
|
|
|
|
displayName: Build Native watchOS (macOS)
|
2019-02-05 06:22:35 +03:00
|
|
|
vmImage: macos-10.13
|
2019-02-09 21:23:09 +03:00
|
|
|
target: externals-watchos
|
2019-02-05 06:22:35 +03:00
|
|
|
|
2019-02-09 21:23:09 +03:00
|
|
|
# NATIVE JOBS - LINUX
|
2019-02-05 06:22:35 +03:00
|
|
|
- job: native_linux_linux
|
|
|
|
displayName: Build Native Linux (Linux)
|
|
|
|
pool:
|
|
|
|
vmImage: ubuntu-16.04
|
|
|
|
container: ubuntu:14.04
|
|
|
|
steps:
|
2019-02-15 00:04:20 +03:00
|
|
|
- checkout: self
|
|
|
|
submodules: recursive
|
2019-02-05 06:22:35 +03:00
|
|
|
- bash: |
|
|
|
|
sudo apt update
|
|
|
|
sudo apt install -y apt-transport-https
|
|
|
|
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
|
|
|
|
echo "deb https://download.mono-project.com/repo/ubuntu stable-trusty main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
|
|
|
|
sudo apt update
|
|
|
|
sudo apt install -y $NATIVE_LINUX_PACKAGES
|
2019-02-11 21:21:23 +03:00
|
|
|
displayName: Install any package dependencies
|
2019-02-05 06:22:35 +03:00
|
|
|
- bash: ./bootstrapper.sh -t externals-linux -v $VERBOSITY
|
2019-02-11 21:21:23 +03:00
|
|
|
displayName: Run the bootstrapper for externals-linux
|
2019-02-05 06:22:35 +03:00
|
|
|
env:
|
|
|
|
CC: clang-3.8
|
|
|
|
CXX: clang++-3.8
|
|
|
|
- task: PublishPipelineArtifact@0
|
2019-02-11 21:21:23 +03:00
|
|
|
displayName: Publish the native_linux_linux artifacts
|
2019-02-05 06:22:35 +03:00
|
|
|
inputs:
|
2019-02-09 21:23:09 +03:00
|
|
|
artifactName: native_linux_linux
|
2019-02-05 06:22:35 +03:00
|
|
|
targetPath: 'output'
|
2019-02-09 21:23:09 +03:00
|
|
|
- template: azure-templates-bootstrapper.yml
|
|
|
|
parameters:
|
|
|
|
name: native_tizen_linux
|
|
|
|
displayName: Build Native Tizen (Linux)
|
2019-02-05 06:22:35 +03:00
|
|
|
vmImage: ubuntu-16.04
|
2019-02-09 21:23:09 +03:00
|
|
|
packages: $(TIZEN_LINUX_PACKAGES)
|
|
|
|
target: externals-tizen
|
2019-02-05 06:22:35 +03:00
|
|
|
|
2019-02-09 21:23:09 +03:00
|
|
|
# MANAGED JOBS
|
|
|
|
- template: azure-templates-bootstrapper.yml
|
|
|
|
parameters:
|
|
|
|
name: managed_windows
|
|
|
|
displayName: Build Managed (Windows)
|
2019-02-05 06:22:35 +03:00
|
|
|
vmImage: vs2017-win2016
|
2019-02-09 21:23:09 +03:00
|
|
|
target: libs-only
|
|
|
|
dependsOn:
|
|
|
|
- native_android_windows
|
|
|
|
- native_tizen_windows
|
|
|
|
- native_uwp_windows
|
|
|
|
- native_win32_windows
|
|
|
|
- template: azure-templates-bootstrapper.yml
|
|
|
|
parameters:
|
|
|
|
name: managed_macos
|
|
|
|
displayName: Build Managed (macOS)
|
2019-02-05 06:22:35 +03:00
|
|
|
vmImage: macos-10.13
|
2019-02-09 21:23:09 +03:00
|
|
|
target: libs-only
|
|
|
|
dependsOn:
|
|
|
|
- native_android_macos
|
|
|
|
- native_ios_macos
|
|
|
|
- native_macos_macos
|
|
|
|
- native_tizen_macos
|
|
|
|
- native_tvos_macos
|
|
|
|
- native_watchos_macos
|
|
|
|
- template: azure-templates-bootstrapper.yml
|
|
|
|
parameters:
|
|
|
|
name: managed_linux
|
|
|
|
displayName: Build Managed (Linux)
|
2019-02-05 06:22:35 +03:00
|
|
|
vmImage: ubuntu-16.04
|
2019-02-09 21:23:09 +03:00
|
|
|
packages: $(MANAGED_LINUX_PACKAGES)
|
|
|
|
target: libs-only
|
|
|
|
dependsOn:
|
|
|
|
- native_linux_linux
|
|
|
|
- native_tizen_linux
|
2019-02-05 06:22:35 +03:00
|
|
|
|
2019-02-09 21:23:09 +03:00
|
|
|
# PACKAGING JOBS
|
|
|
|
- template: azure-templates-bootstrapper.yml
|
|
|
|
parameters:
|
|
|
|
name: package
|
|
|
|
displayName: Package NuGets
|
2019-02-05 06:22:35 +03:00
|
|
|
vmImage: vs2017-win2016
|
2019-02-09 21:23:09 +03:00
|
|
|
target: nuget-only
|
|
|
|
dependsOn:
|
|
|
|
- managed_linux
|
|
|
|
- managed_macos
|
|
|
|
- managed_windows
|
2019-02-11 21:21:23 +03:00
|
|
|
preBuildSteps:
|
|
|
|
- powershell: |
|
|
|
|
if ($env:GIT_BRANCH_NAME.StartsWith($env:FEATURE_NAME_PREFIX)) {
|
|
|
|
$feature = $env:GIT_BRANCH_NAME.Substring($env:FEATURE_NAME_PREFIX.Length)
|
|
|
|
Write-Host "##vso[task.setvariable variable=FEATURE_NAME]$feature"
|
|
|
|
}
|
2019-02-09 21:23:09 +03:00
|
|
|
postBuildSteps:
|
2019-03-11 14:45:13 +03:00
|
|
|
- task: PublishBuildArtifacts@1
|
|
|
|
inputs:
|
|
|
|
artifactName: native
|
|
|
|
pathToPublish: 'output/native'
|
2019-02-11 21:21:23 +03:00
|
|
|
- task: PublishBuildArtifacts@1
|
2019-02-09 21:23:09 +03:00
|
|
|
inputs:
|
2019-02-11 21:21:23 +03:00
|
|
|
artifactName: nuget
|
|
|
|
pathToPublish: 'output/nugets'
|
2019-02-15 00:04:20 +03:00
|
|
|
- ${{ if eq(variables['System.TeamProject'], 'devdiv') }}:
|
|
|
|
- job: signing
|
|
|
|
displayName: Signing NuGets
|
|
|
|
dependsOn: package
|
|
|
|
pool:
|
|
|
|
name: VSEng-XamarinCustom
|
2019-02-21 00:48:56 +03:00
|
|
|
demands:
|
|
|
|
- corpnet
|
2019-02-15 00:04:20 +03:00
|
|
|
condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/'))
|
|
|
|
steps:
|
|
|
|
- checkout: none
|
2019-02-21 00:48:56 +03:00
|
|
|
- template: sign-artifacts.yml@xamarin-templates
|
2019-02-15 00:04:20 +03:00
|
|
|
parameters:
|
|
|
|
targetFolder: 'output/signed'
|
|
|
|
- task: PublishPipelineArtifact@0
|
|
|
|
inputs:
|
|
|
|
artifactName: nuget-signed
|
|
|
|
targetPath: 'output/signed'
|
2019-02-05 06:22:35 +03:00
|
|
|
|
2019-02-09 21:23:09 +03:00
|
|
|
# TEST JOBS
|
|
|
|
- template: azure-templates-bootstrapper.yml
|
|
|
|
parameters:
|
|
|
|
name: tests_windows
|
|
|
|
displayName: Tests (Windows)
|
2019-02-05 06:22:35 +03:00
|
|
|
vmImage: vs2017-win2016
|
2019-02-09 21:23:09 +03:00
|
|
|
target: tests-only
|
|
|
|
dependsOn:
|
|
|
|
- package
|
|
|
|
postBuildSteps:
|
|
|
|
- task: PublishTestResults@2
|
|
|
|
inputs:
|
|
|
|
testResultsFormat: xUnit
|
|
|
|
testResultsFiles: 'output/tests/**/*.xml'
|
|
|
|
- template: azure-templates-bootstrapper.yml
|
|
|
|
parameters:
|
|
|
|
name: tests_macos
|
|
|
|
displayName: Tests (macOS)
|
2019-02-05 06:22:35 +03:00
|
|
|
vmImage: macos-10.13
|
2019-02-09 21:23:09 +03:00
|
|
|
target: tests-only
|
|
|
|
dependsOn:
|
|
|
|
- package
|
|
|
|
postBuildSteps:
|
|
|
|
- task: PublishTestResults@2
|
|
|
|
inputs:
|
|
|
|
testResultsFormat: xUnit
|
|
|
|
testResultsFiles: 'output/tests/**/*.xml'
|
|
|
|
- template: azure-templates-bootstrapper.yml
|
|
|
|
parameters:
|
|
|
|
name: tests_linux
|
|
|
|
displayName: Tests (Linux)
|
2019-02-05 06:22:35 +03:00
|
|
|
vmImage: ubuntu-16.04
|
2019-02-09 21:23:09 +03:00
|
|
|
packages: $(MANAGED_LINUX_PACKAGES)
|
|
|
|
target: tests-only
|
|
|
|
dependsOn:
|
|
|
|
- package
|
|
|
|
postBuildSteps:
|
|
|
|
- task: PublishTestResults@2
|
|
|
|
inputs:
|
|
|
|
testResultsFormat: xUnit
|
|
|
|
testResultsFiles: 'output/tests/**/*.xml'
|
2019-02-05 06:22:35 +03:00
|
|
|
|
2019-02-09 21:23:09 +03:00
|
|
|
# SAMPLES JOBS
|
2019-02-15 00:04:20 +03:00
|
|
|
- ${{ if eq(variables['System.TeamProject'], 'devdiv') }}:
|
|
|
|
- template: azure-templates-bootstrapper.yml
|
|
|
|
parameters:
|
|
|
|
name: samples_windows
|
|
|
|
displayName: Build Samples (Windows)
|
|
|
|
vmImage: vs2017-win2016
|
|
|
|
target: samples
|
|
|
|
dependsOn:
|
|
|
|
- managed_windows
|
|
|
|
- template: azure-templates-bootstrapper.yml
|
|
|
|
parameters:
|
|
|
|
name: samples_macos
|
|
|
|
displayName: Build Samples (macOS)
|
|
|
|
vmImage: macos-10.13
|
|
|
|
target: samples
|
|
|
|
dependsOn:
|
|
|
|
- managed_macos
|
|
|
|
preBuildSteps:
|
|
|
|
- task: InstallAppleCertificate@2
|
|
|
|
inputs:
|
|
|
|
certSecureFile: 'SkiaSharp iOS Certificate.p12'
|
|
|
|
- task: InstallAppleCertificate@2
|
|
|
|
inputs:
|
|
|
|
certSecureFile: 'SkiaSharp Mac Certificate.p12'
|
|
|
|
- task: InstallAppleProvisioningProfile@1
|
|
|
|
inputs:
|
|
|
|
provProfileSecureFile: 'SkiaSharp iOS Provisioning.mobileprovision'
|
|
|
|
- task: InstallAppleProvisioningProfile@1
|
|
|
|
inputs:
|
|
|
|
provProfileSecureFile: 'SkiaSharp Mac Provisioning.provisionprofile'
|
|
|
|
- task: InstallAppleProvisioningProfile@1
|
|
|
|
inputs:
|
|
|
|
provProfileSecureFile: 'SkiaSharp tvOS Provisioning.mobileprovision'
|
|
|
|
- template: azure-templates-bootstrapper.yml
|
|
|
|
parameters:
|
|
|
|
name: samples_linux
|
|
|
|
displayName: Build Samples (Linux)
|
|
|
|
vmImage: ubuntu-16.04
|
|
|
|
packages: $(MANAGED_LINUX_PACKAGES)
|
|
|
|
target: samples
|
|
|
|
dependsOn:
|
|
|
|
- managed_linux
|