azure-pipelines.yml 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. # https://aka.ms/yaml
  2. variables:
  3. CMAKE_PREFIX_PATH: /usr/local/opt/qt5/lib/cmake
  4. CEF_BUILD_VERSION: 3770
  5. CEF_VERSION: 75.1.16+g16a67c4+chromium-75.0.3770.100
  6. TWITCH-CLIENTID: $(twitch_clientid)
  7. TWITCH-HASH: $(twitch_hash)
  8. RESTREAM-CLIENTID: $(restream_clientid)
  9. RESTREAM-HASH: $(restream_hash)
  10. jobs:
  11. - job: Prebuild
  12. pool:
  13. vmImage: 'ubuntu-18.04'
  14. steps:
  15. - bash: |
  16. if curl -s "https://api.github.com/repos/$BUILD_REPOSITORY_ID/issues/$SYSTEM_PULLREQUEST_PULLREQUESTNUMBER/labels" | grep '"name": "Seeking Testers"'
  17. then
  18. echo "##vso[task.setvariable variable=prHasCILabel;isOutput=true]true"
  19. fi
  20. displayName: 'Check if PR should keep artifacts'
  21. condition: eq(variables['Build.Reason'], 'PullRequest')
  22. name: checkPrLabel
  23. - job: 'Build_macOS'
  24. dependsOn: Prebuild
  25. variables:
  26. prHasCILabel: $[ dependencies.Prebuild.outputs['checkPrLabel.prHasCILabel'] ]
  27. pool:
  28. vmImage: 'macOS-10.15'
  29. steps:
  30. - script: git submodule update --init --recursive
  31. displayName: 'Checkout Submodules'
  32. - script: TERM="" ./CI/full-build-macos.sh
  33. displayName: 'Install dependencies and build'
  34. - script: TERM="" ./CI/full-build-macos.sh -s -d -b -p
  35. condition: or(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['prHasCILabel'], true))
  36. displayName: 'Before Deploy'
  37. - bash: |
  38. mkdir -p ./nightly
  39. find ./build -name \*.dmg -exec cp -PR \{\} ./nightly/ \;
  40. displayName: 'Copy disk image'
  41. - task: PublishBuildArtifacts@1
  42. condition: or(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['prHasCILabel'], true))
  43. inputs:
  44. pathtoPublish: './nightly'
  45. artifactName: macbuild
  46. - job: 'Build_Windows32'
  47. dependsOn: Prebuild
  48. variables:
  49. prHasCILabel: $[ dependencies.Prebuild.outputs['checkPrLabel.prHasCILabel'] ]
  50. pool:
  51. vmImage: 'windows-2019'
  52. steps:
  53. - script: git submodule update --init --recursive
  54. displayName: 'Checkout Submodules'
  55. - script: ./CI/install-qt-win.cmd
  56. displayName: 'Install QT'
  57. - script: ./CI/install-script-win.cmd
  58. displayName: 'Download / Setup Deps / Run CMake'
  59. - task: MSBuild@1
  60. displayName: 'Build 32-bit'
  61. inputs:
  62. msbuildArguments: '/m /p:Configuration=RelWithDebInfo'
  63. solution: .\build32\obs-studio.sln
  64. - script: ./CI/before-deploy-win.cmd
  65. condition: or(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['prHasCILabel'], true))
  66. displayName: 'Before deploy'
  67. - task: PublishBuildArtifacts@1
  68. condition: or(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['prHasCILabel'], true))
  69. inputs:
  70. pathtoPublish: './build'
  71. artifactName: winbuild
  72. - job: 'Build_Windows64'
  73. dependsOn: Prebuild
  74. variables:
  75. prHasCILabel: $[ dependencies.Prebuild.outputs['checkPrLabel.prHasCILabel'] ]
  76. pool:
  77. vmImage: 'windows-2019'
  78. steps:
  79. - script: git submodule update --init --recursive
  80. displayName: 'Checkout Submodules'
  81. - script: ./CI/install-qt-win.cmd
  82. displayName: 'Install QT'
  83. - script: ./CI/install-script-win.cmd
  84. displayName: 'Download / Setup Deps / Run CMake'
  85. - task: MSBuild@1
  86. displayName: 'Build 64-bit'
  87. inputs:
  88. msbuildArguments: '/m /p:Configuration=RelWithDebInfo'
  89. solution: .\build64\obs-studio.sln
  90. - script: ./CI/before-deploy-win.cmd
  91. condition: or(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['prHasCILabel'], true))
  92. displayName: 'Before deploy'
  93. - task: PublishBuildArtifacts@1
  94. condition: or(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['prHasCILabel'], true))
  95. inputs:
  96. pathtoPublish: './build'
  97. artifactName: winbuild
  98. - job: 'Build_Linux'
  99. dependsOn: Prebuild
  100. variables:
  101. prHasCILabel: $[ dependencies.Prebuild.outputs['checkPrLabel.prHasCILabel'] ]
  102. pool:
  103. vmImage: 'ubuntu-18.04'
  104. steps:
  105. - script: git submodule update --init --recursive
  106. displayName: 'Checkout Submodules'
  107. - script: ./CI/install-dependencies-linux.sh
  108. displayName: 'Install Dependencies'
  109. - script: ./CI/before-script-linux.sh
  110. displayName: 'CMake'
  111. - bash: |
  112. set -e
  113. cd ./build
  114. make -j4
  115. cd -
  116. displayName: 'Build'