A cross-platform UI framework for .NET
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

189 lines
4.8 KiB

jobs:
- job: GetPRNumber
pool:
vmImage: 'ubuntu-24.04'
variables:
SolutionDir: '$(Build.SourcesDirectory)'
steps:
- task: UseDotNet@2
displayName: 'Use .NET 10.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-24.04'
steps:
- task: UseDotNet@2
displayName: 'Use .NET 8.0 Runtime'
inputs:
packageType: runtime
version: 8.0.x
- task: UseDotNet@2
displayName: 'Use .NET 10.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: '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-15'
steps:
- task: UseDotNet@2
displayName: 'Use .NET 8.0 Runtime'
inputs:
packageType: runtime
version: 8.0.x
- task: UseDotNet@2
displayName: 'Use .NET 10.0 SDK'
inputs:
packageType: sdk
useGlobalJson: true
- task: CmdLine@2
displayName: 'Install Workloads'
inputs:
script: |
dotnet workload install android ios maccatalyst macos wasm-tools
- 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: 'macosx26.0'
configuration: 'Release'
xcWorkspacePath: '**/*.xcodeproj/project.xcworkspace'
xcodeVersion: 'specifyPath' # Options: 8, 9, default, specifyPath
xcodeDeveloperDir: '/Applications/Xcode_26.0.app/Contents/Developer'
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-2025'
variables:
SolutionDir: '$(Build.SourcesDirectory)'
steps:
- task: UseDotNet@2
displayName: 'Use .NET 8.0 Runtime'
inputs:
packageType: runtime
version: 8.0.x
- task: UseDotNet@2
displayName: 'Use .NET 10.0 SDK'
inputs:
packageType: sdk
useGlobalJson: true
- task: CmdLine@2
displayName: 'Install Workloads'
inputs:
script: |
dotnet workload install android maccatalyst ios tvos wasm-tools
- task: CmdLine@2
displayName: 'Install Nuke'
inputs:
script: |
dotnet tool install --global Nuke.GlobalTool --version 9.0.4
- 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()