# Repo: codefoco/AzureDevopsTemplates
resources:
repositories:
- repository: templates
type: github
name: codefoco/AzureDevopsTemplates
endpoint: codefoco
pool:
vmImage: 'macOS-10.14'
demands: msbuild
steps:
# Print the current version of Xcode
- task: CmdLine@2
displayName: 'Show Xcode version'
inputs:
script: '/usr/bin/xcodebuild -version'
# Azure DevOps hosted pool is still using an old version of Xamarin.iOS,
- task: CmdLine@2
displayName: 'Provisioning Xamarin.iOS'
inputs:
script: 'cd ~;
curl -O https://download.visualstudio.microsoft.com/download/pr/d11a42ff-dd11-4005-b5a8-799856a96aad/2893a2da0df8a2e2d45ea17e2be2ccce/xamarin.ios-13.4.0.2.pkg;
sudo installer -pkg ~/xamarin.ios-13.4.0.2.pkg -target /'
# Print the current version of Xamarin.iOS
- task: CmdLine@2
displayName: 'Show Xamarin.iOS Version'
inputs:
script: '/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin/mtouch --version'
- task: NuGetCommand@2
displayName: 'NuGet restore'
inputs:
restoreSolution: NLua.sln
- task: NuGetCommand@2
displayName: 'NuGet restore'
inputs:
restoreSolution: NLua.Mac.sln
- script: 'brew update'
displayName: 'Brew Update'
- script: 'brew install gitversion --ignore-dependencies'
displayName: 'Install GitVersion'
- task: PowerShell@2
displayName: 'PowerShell Script'
inputs:
targetType: filePath
filePath: ./devops/PreBuild.ps1
arguments: 'NLua NLua.nuspec'
- task: MSBuild@1
displayName: 'Build solution NLua.sln'
inputs:
solution: NLua.sln
configuration: Release
- task: MSBuild@1
displayName: 'Build solution NLua.Mac.sln'
inputs:
solution: NLua.Mac.sln
configuration: Release
- script: 'mono packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe ./tests/build/net45/bin/Release/NLuaTest.dll --result=TEST-Result-Mac.xml'
displayName: 'Run OSX tests'
- task: PublishTestResults@2
displayName: 'Publish Mac Test Results TEST-Result-Mac.xml'
inputs:
testResultsFormat: NUnit
testResultsFiles: 'TEST-Result-Mac.xml'
- task: MSBuild@1
displayName: 'Run iOS tests'
inputs:
solution: tests/build/xamarinios/NLuaTest.XamariniOS.csproj
platform: iPhoneSimulator
configuration: Release
msbuildArguments: '/t:RunSimulatorTests'
- task: PublishTestResults@2
displayName: 'Publish iOS Test Results TEST-Result-iOS.xml'
inputs:
testResultsFormat: NUnit
testResultsFiles: 'tests/build/xamarinios/TEST-Result-Xamarin.iOS.xml'
- task: MSBuild@1
displayName: 'Run tvOS tests'
inputs:
solution: tests/build/xamarintvos/NLuaTest.XamarinTVOS.csproj
platform: iPhoneSimulator
configuration: Release
msbuildArguments: '/t:RunSimulatorTests'
- task: PublishTestResults@2
displayName: 'Publish tvOS Test Results TEST-Result-tvOS.xml'
inputs:
testResultsFormat: NUnit
testResultsFiles: 'tests/build/xamarintvos/TEST-Result-Xamarin.TVOS.xml'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: Xamarin.iOS.NLua.dll'
inputs:
PathtoPublish: lib/Release/xamarinios/NLua.dll
ArtifactName: Xamarin.iOS.NLua.dll
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: Xamarin.tvOS.NLua.dll'
inputs:
PathtoPublish: lib/Release/xamarintvos/NLua.dll
ArtifactName: Xamarin.tvOS.NLua.dll
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: Xamarin.watchOS.NLua.dll'
inputs:
PathtoPublish: lib/Release/xamarinwatchos/NLua.dll
ArtifactName: Xamarin.watchOS.NLua.dll
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: Xamarin.Mac.NLua.dll'
inputs:
PathtoPublish: lib/Release/xamarinmac/NLua.dll
ArtifactName: Xamarin.Mac.NLua.dll
- task: TriggerBuild@3
displayName: 'Trigger a new build of NLua.Windows'
inputs:
buildDefinition: 'NLua.Windows'
ignoreSslCertificateErrors: true
useSameSourceVersion: true
password: '$(myToken)'
- task: SendTelegramNotification@0
condition: in(variables['Agent.JobStatus'], 'SucceededWithIssues')
inputs:
botToken: '$(botToken)'
chats: '$(chatId)'
taskStatus: false
message: |
⚠️ Warning! $(Build.DefinitionName) ($(Build.SourceBranchName))
$(Build.SourceVersion)$(Build.SourceVersionMessage) by $(Build.QueuedBy) - task: SendTelegramNotification@0 condition: in(variables['Agent.JobStatus'], 'Failed') inputs: botToken: '$(botToken)' chats: '$(chatId)' taskStatus: false buildQueuedBy: false message: | ❌ Fail! $(Build.DefinitionName) (
$(Build.SourceBranchName))
$(Build.SourceVersion)$(Build.SourceVersionMessage) by $(Build.QueuedBy) - task: SendTelegramNotification@0 condition: in(variables['Agent.JobStatus'], 'Succeeded') inputs: botToken: '$(botToken)' chats: '$(chatId)' taskStatus: false buildQueuedBy: false message: | ✅ Success! $(Build.DefinitionName) (
$(Build.SourceBranchName))
$(Build.SourceVersion)$(Build.SourceVersionMessage) by $(Build.QueuedBy) #