Added MS Azure Dev Ops CI integration (#162)
* Do not build for i386 on macOS Use ARCHS_STANDARD to avoid the error “The i386 architecture is deprecated. You should update your ARCHS build setting to remove the i386 architecture.” * Fixed missing include The Visual Studio solution was not compiling * Fixed isnan ambigious refernce Ambigious reference when compiling on travis https://stackoverflow.com/questions/33770374/why-is-isnan-ambiguous-and-how-to-avoid-it * Set MSVC warning level to 3 Too many warnings were generated when building a Release build making Travis job to fail because of too much output * Use default toolset for Visual Studio AppVeyor recommends to set the default toolset * #include <cstdint> * Use MSVC ToolsVersion="14.0" # Conflicts: # xpcPlugin/xpcPlugin/xpcPlugin.vcxproj * Removed binaries from repository # Conflicts: # xpcPlugin/XPlaneConnect/64/win.xpl # xpcPlugin/XPlaneConnect/win.xpl * Added ms azure ci xcode linux linux + macos linux + macos removed branch filter win tests win tests Test all platfroms artifacts tests * output all binaries to ‘XPlaneConnect’ All platforms produce a binary in xpcPlugin/XPlaneConnect/ xpcPlugin/XPlaneConnect/64/ * Added ms azure GH deploy deploy stage GH release test trigger tags * Clean up yml file - Added variables - Added job decriptions * Ignore script to ignore .exp files + fixed output path * Renamed ms azure GH connection
This commit is contained in:
committed by
Jason Watkins
parent
c018d6c3be
commit
1c082d7730
165
azure-pipelines.yml
Normal file
165
azure-pipelines.yml
Normal file
@@ -0,0 +1,165 @@
|
||||
# Xcode
|
||||
# Build, test, and archive an Xcode workspace on macOS.
|
||||
# Add steps that install certificates, test, sign, and distribute an app, save build artifacts, and more:
|
||||
# https://docs.microsoft.com/azure/devops/pipelines/languages/xcode
|
||||
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
# Build all branches starting with 'ms-' This is useful when making and testing chanes made to this file
|
||||
- ms-*
|
||||
tags:
|
||||
include:
|
||||
- '*'
|
||||
# pr:
|
||||
# - '*'
|
||||
variables:
|
||||
xpcBuildOutputPath: xpcPlugin/XPlaneConnect/
|
||||
xpcArtifactNameLinux: xpc-linux
|
||||
xpcArtifactNameMac: xpc-macos
|
||||
xpcArtifactNameWindows: xpc-windows
|
||||
xpcPackageName: XPlaneConnect
|
||||
|
||||
# The Github Release tasks requires a GH 'service connection' to be setup in the MS Azure Account
|
||||
# This connection must be setup in with a GH token in the MS Azure Project Settings
|
||||
#
|
||||
# https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/github-release?view=azure-devops
|
||||
# https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml#sep-github
|
||||
xpcGitHubConnection: xpc_gh
|
||||
|
||||
|
||||
stages:
|
||||
- stage: Build
|
||||
jobs:
|
||||
- job: macOS
|
||||
pool:
|
||||
vmImage: 'macos-latest'
|
||||
|
||||
steps:
|
||||
- task: Xcode@5
|
||||
inputs:
|
||||
actions: 'build'
|
||||
scheme: ''
|
||||
sdk: 'macosx10.14'
|
||||
configuration: 'Release'
|
||||
xcWorkspacePath: 'xpcPlugin/xpcPlugin.xcodeproj'
|
||||
xcodeVersion: 'default' # Options: 8, 9, 10, default, specifyPath
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: '$(xpcArtifactNameMac)'
|
||||
targetPath: '$(xpcBuildOutputPath)'
|
||||
|
||||
- job: Linux
|
||||
pool:
|
||||
vmImage: 'ubuntu-latest'
|
||||
|
||||
steps:
|
||||
- script: |
|
||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y g++-5 mesa-common-dev g++-multilib g++-5-multilib
|
||||
displayName: 'apt install'
|
||||
|
||||
- script: |
|
||||
cd xpcPlugin
|
||||
cmake .
|
||||
make
|
||||
displayName: 'make'
|
||||
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: 'xpc-linux'
|
||||
targetPath: '$(xpcBuildOutputPath)'
|
||||
|
||||
- job: Windows
|
||||
pool:
|
||||
vmImage: 'vs2017-win2016'
|
||||
|
||||
variables:
|
||||
solution: 'xpcPlugin/xpcPlugin/xpcPlugin.sln'
|
||||
buildPlatform: 'Win32|x64'
|
||||
buildConfiguration: 'Release'
|
||||
appxPackageDir: '$(build.artifactStagingDirectory)\AppxPackages\\'
|
||||
|
||||
steps:
|
||||
- task: NuGetToolInstaller@0
|
||||
|
||||
- task: NuGetCommand@2
|
||||
inputs:
|
||||
restoreSolution: '$(solution)'
|
||||
|
||||
- task: VSBuild@1
|
||||
inputs:
|
||||
platform: 'Win32'
|
||||
solution: '$(solution)'
|
||||
configuration: '$(buildConfiguration)'
|
||||
msbuildArgs: '/p:AppxBundlePlatforms="$(buildPlatform)" /p:AppxPackageDir="$(appxPackageDir)" /p:AppxBundle=Always /p:UapAppxPackageBuildMode=StoreUpload'
|
||||
|
||||
- task: VSBuild@1
|
||||
inputs:
|
||||
platform: 'x64'
|
||||
solution: '$(solution)'
|
||||
configuration: '$(buildConfiguration)'
|
||||
msbuildArgs: '/p:AppxBundlePlatforms="$(buildPlatform)" /p:AppxPackageDir="$(appxPackageDir)" /p:AppxBundle=Always /p:UapAppxPackageBuildMode=StoreUpload'
|
||||
|
||||
- task: Bash@3
|
||||
inputs:
|
||||
targetType: 'inline'
|
||||
script: |
|
||||
rm $(xpcBuildOutputPath)/win.exp
|
||||
rm $(xpcBuildOutputPath)/win.lib
|
||||
rm $(xpcBuildOutputPath)/64/win.exp
|
||||
rm $(xpcBuildOutputPath)/64/win.lib
|
||||
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: '$(xpcArtifactNameWindows)'
|
||||
targetPath: '$(xpcBuildOutputPath)'
|
||||
|
||||
- stage: Deploy
|
||||
jobs:
|
||||
- job: Package_Binaries
|
||||
displayName: 'Package Binaries'
|
||||
pool:
|
||||
vmImage: 'ubuntu-latest'
|
||||
|
||||
steps:
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: '$(xpcArtifactNameMac)'
|
||||
targetPath: $(System.DefaultWorkingDirectory)/$(xpcPackageName)
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: '$(xpcArtifactNameLinux)'
|
||||
targetPath: $(System.DefaultWorkingDirectory)/$(xpcPackageName)
|
||||
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: '$(xpcArtifactNameWindows)'
|
||||
targetPath: $(System.DefaultWorkingDirectory)/$(xpcPackageName)
|
||||
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: '$(xpcPackageName)'
|
||||
targetPath: $(System.DefaultWorkingDirectory)/$(xpcPackageName)
|
||||
|
||||
# Archive Files
|
||||
- task: ArchiveFiles@2
|
||||
inputs:
|
||||
rootFolderOrFile: '$(System.DefaultWorkingDirectory)/$(xpcPackageName)'
|
||||
includeRootFolder: true
|
||||
archiveType: 'zip'
|
||||
archiveFile: '$(Build.ArtifactStagingDirectory)/$(xpcPackageName).zip'
|
||||
|
||||
# Uploads the .zip to GitHub and creates a new "Release" with the commit tag
|
||||
# This tasks runs only on pushed tags
|
||||
- task: GitHubRelease@0
|
||||
inputs:
|
||||
gitHubConnection: '$(xpcGitHubConnection)'
|
||||
repositoryName: '$(Build.Repository.Name)'
|
||||
action: 'create'
|
||||
target: '$(Build.SourceVersion)'
|
||||
tagSource: 'auto'
|
||||
tag: $(tagName)
|
||||
assets: '$(Build.ArtifactStagingDirectory)/$(xpcPackageName).zip'
|
||||
isPreRelease: true
|
||||
Reference in New Issue
Block a user