uado/azure-pipelines.yml

143 строки
4.3 KiB
YAML

trigger:
batch: true
branches:
include:
- master
resources:
containers:
- container: nv-bionic-wasm
image: nventive/wasm-build:1.3
pr:
branches:
include:
- master
paths:
include:
- '*'
exclude:
- '*.md'
jobs:
- job: Windows
pool:
vmImage: windows-2022
workspace:
clean: all
variables:
- name: UnoPackageOutputPath
value: $(Build.ArtifactStagingDirectory)
- name: ANDROID_NDK_HOME
value: C:\Microsoft\AndroidNDK64\android-ndk-r16b
- name: ANDROID_NDK_PATH
value: C:\Microsoft\AndroidNDK64\android-ndk-r16b
- name: AndroidNdkDirectory
value: C:\Microsoft\AndroidNDK64\android-ndk-r16b
- group: 'UADO Keystore'
strategy:
maxParallel: 3
matrix:
Release_UWP:
BuildPlatform: UWP
Release_Android:
BuildPlatform: Android
Release_Wasm:
BuildPlatform: Wasm
steps:
- task: gittools.gitversion.gitversion-task.GitVersion@4
- task: NuGetToolInstaller@0
inputs:
versionSpec: 6.1.0
- task: DownloadSecureFile@1
condition: eq(variables['BuildPlatform'], 'Android')
name: Keystore
inputs:
secureFile: nventive.jks
- task: NuGetCommand@2
inputs:
command: restore
restoreSolution: src/Uno.AzureDevOps.sln
feedsToUse: select
- powershell: ((Get-Content src\Uno.AzureDevOps\Uno.AzureDevOps.Shared\Client\ClientConstants.cs -Raw) -Replace '--production-secret--','$(ProductionSecret)' -Replace '--staging-secret--','$(StagingSecret)').Trim() | Set-Content -Path src\Uno.AzureDevOps\Uno.AzureDevOps.Shared\Client\ClientConstants.cs -Encoding UTF8
displayName: Set client secrets
- powershell: ((Get-Content src\Uno.AzureDevOps\Uno.AzureDevOps.Shared\Client\ClientConstants.cs -Raw) -Replace '--appcenter-secret-android--','$(AppCenterSecretAndroid)').Trim() | Set-Content -Path src\Uno.AzureDevOps\Uno.AzureDevOps.Shared\Client\ClientConstants.cs -Encoding UTF8
displayName: Set AppCenter secret
- task: MSBuild@1
inputs:
solution: src/Uno.AzureDevOps.sln
configuration: Release
platform: $(BuildPlatform)
restoreNugetPackages: false
msbuildArguments: /p:AndroidSigningKeyStore=$(Keystore.secureFilePath) /p:AndroidSigningKeyAlias=$(AndroidSigningKeyAlias) /p:AndroidSigningKeyPass=$(AndroidSigningKeyPass) /p:AndroidSigningStorePass=$(AndroidSigningStorePass)
- task: PublishBuildArtifacts@1
inputs:
ArtifactName: $(BuildPlatform)
PathtoPublish: $(UnoPackageOutputPath)
publishLocation: Container
- job: linux
container: unoplatform/wasm-build:2.2
pool:
vmImage: 'ubuntu-18.04'
variables:
NUGET_PACKAGES: $(build.sourcesdirectory)/.nuget
SkipUnknownFrameworks: True
steps:
- checkout: self
clean: true
- bash: |
cd /emsdk
sudo ./emsdk activate sdk-1.38.31-64bit
sudo chmod -R 777 /emsdk
displayName: 'Setup Emscripten'
- task: GitVersion@4
inputs:
updateAssemblyInfo: false
- bash: |
sed -i 's/--production-secret--/$(ProductionSecret)/g' ClientConstants.cs
sed -i 's/--staging-secret--/$(StagingSecret)/g' ClientConstants.cs
sed -i 's/--appcenter-secret-android--/$(AppCenterSecretAndroid)/g' ClientConstants.cs
workingDirectory: $(build.sourcesdirectory)/src/Uno.AzureDevOps/Uno.AzureDevOps.Shared/Client/
- script: |
source /emsdk/emsdk_env.sh
cd $(build.sourcesdirectory)
msbuild /r /p:Configuration=Release $(build.sourcesdirectory)/src/Uno.AzureDevOps/Uno.AzureDevOps.Wasm/Uno.AzureDevOps.Wasm.csproj
env:
GITVERSION_FullSemVer: $(GITVERSION_FullSemVer)
displayName: 'Build Uado'
- task: CopyFiles@2
displayName: 'Publish Wasm Binaries'
inputs:
SourceFolder: $(build.sourcesdirectory)/src/Uno.AzureDevOps/Uno.AzureDevOps.Wasm/bin/Release/netstandard2.0/dist
Contents: '**/*.*'
TargetFolder: $(build.artifactstagingdirectory)
CleanTargetFolder: false
OverWrite: false
flattenFolders: false
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: $(build.artifactstagingdirectory)
ArtifactName: Uno-AzureDevOps-wasm
ArtifactType: Container