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()