Avalonia/azure-pipelines.yml

210 строки
5.5 KiB
YAML

jobs:
- job: GetPRNumber
pool:
vmImage: 'ubuntu-20.04'
variables:
SolutionDir: '$(Build.SourcesDirectory)'
steps:
- task: UseDotNet@2
displayName: 'Use .NET 8.0 SDK'
inputs:
packageType: sdk
useGlobalJson: true
- task: CmdLine@2
displayName: 'Run Build'
inputs:
script: ./build.sh --target OutputVersion --version-output-dir $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'PRNumber'
publishLocation: 'Container'
- job: Linux
pool:
vmImage: 'ubuntu-20.04'
steps:
- task: UseDotNet@2
displayName: 'Use .NET 6.0 Runtime'
inputs:
packageType: runtime
version: 6.0.x
- task: UseDotNet@2
displayName: 'Use .NET 8.0 SDK'
inputs:
packageType: sdk
useGlobalJson: true
- task: CmdLine@2
displayName: 'Install Workloads'
inputs:
script: |
dotnet workload install android macos wasm-tools
- task: CmdLine@2
displayName: 'Install Tizen Workload'
inputs:
targetType: 'inline'
script: |
curl -sSL https://raw.githubusercontent.com/Samsung/Tizen.NET/main/workload/scripts/workload-install.sh | sudo bash -s -- -d "/opt/hostedtoolcache/dotnet"
- task: CmdLine@2
displayName: 'Run Build'
inputs:
script: |
dotnet --info
printenv
./build.sh --target CiAzureLinux --configuration=Release
- task: PublishTestResults@2
inputs:
testResultsFormat: 'VSTest'
testResultsFiles: '$(Build.SourcesDirectory)/artifacts/test-results/*.trx'
condition: not(canceled())
- job: macOS
variables:
SolutionDir: '$(Build.SourcesDirectory)'
pool:
vmImage: 'macos-12'
steps:
- task: UseDotNet@2
displayName: 'Use .NET 6.0 Runtime'
inputs:
packageType: runtime
version: 6.0.x
- task: UseDotNet@2
displayName: 'Use .NET 8.0 SDK'
inputs:
packageType: sdk
useGlobalJson: true
- task: CmdLine@2
displayName: 'Install Workloads'
inputs:
script: |
dotnet workload install android ios macos wasm-tools
- task: CmdLine@2
displayName: 'Install Tizen Workload'
inputs:
targetType: 'inline'
script: |
curl -sSL https://raw.githubusercontent.com/Samsung/Tizen.NET/main/workload/scripts/workload-install.sh | sudo bash
- task: CmdLine@2
displayName: 'Generate avalonia-native'
inputs:
script: |
export COREHOST_TRACE=0
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
export DOTNET_CLI_TELEMETRY_OPTOUT=1
./build.sh --target GenerateCppHeaders --configuration Release
- task: Xcode@5
inputs:
actions: 'build'
scheme: ''
sdk: 'macosx12.3'
configuration: 'Release'
xcWorkspacePath: '**/*.xcodeproj/project.xcworkspace'
xcodeVersion: '13' # Options: 8, 9, default, specifyPath
args: '-derivedDataPath ./'
- task: CmdLine@2
displayName: 'Run Build'
inputs:
script: |
export COREHOST_TRACE=0
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
export DOTNET_CLI_TELEMETRY_OPTOUT=1
which dotnet
dotnet --info
printenv
./build.sh --target CiAzureOSX --configuration Release --skip-previewer
- task: PublishTestResults@2
inputs:
testResultsFormat: 'VSTest'
testResultsFiles: '$(Build.SourcesDirectory)/artifacts/test-results/*.trx'
condition: not(canceled())
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: '$(Build.SourcesDirectory)/Build/Products/Release/'
artifactName: 'Avalonia.Native.OSX'
condition: succeeded()
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: '$(Build.SourcesDirectory)/artifacts/nuget'
artifactName: 'NuGetOSX'
condition: succeeded()
- job: Windows
pool:
vmImage: 'windows-2022'
variables:
SolutionDir: '$(Build.SourcesDirectory)'
steps:
- task: UseDotNet@2
displayName: 'Use .NET 6.0 Runtime'
inputs:
packageType: runtime
version: 6.0.x
- task: UseDotNet@2
displayName: 'Use .NET 8.0 SDK'
inputs:
packageType: sdk
useGlobalJson: true
- task: CmdLine@2
displayName: 'Install Workloads'
inputs:
script: |
dotnet workload install android ios tvos wasm-tools
- task: PowerShell@2
displayName: 'Install Tizen Workload'
inputs:
targetType: 'inline'
script: |
(New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/Samsung/Tizen.NET/main/workload/scripts/workload-install.ps1') | Invoke-Expression
- task: CmdLine@2
displayName: 'Install Nuke'
inputs:
script: |
dotnet tool install --global Nuke.GlobalTool --version 6.2.1
- task: CmdLine@2
displayName: 'Run Nuke'
inputs:
script: |
set PATH=%PATH%;%USERPROFILE%\.dotnet\tools
nuke --target CiAzureWindows --configuration Release
- task: PublishTestResults@2
inputs:
testResultsFormat: 'VSTest'
testResultsFiles: '$(Build.SourcesDirectory)/artifacts/test-results/*.trx'
condition: not(canceled())
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: '$(Build.SourcesDirectory)/artifacts/nuget'
artifactName: 'NuGet'
condition: succeeded()
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: '$(Build.SourcesDirectory)/artifacts/zip'
artifactName: 'Samples'
condition: succeeded()