azure-pipelines.yml 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  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. MIXER-CLIENTID: $(mixer_clientid)
  9. MIXER-HASH: $(mixer_hash)
  10. RESTREAM-CLIENTID: $(restream_clientid)
  11. RESTREAM-HASH: $(restream_hash)
  12. jobs:
  13. - job: Prebuild
  14. pool:
  15. vmImage: 'ubuntu-18.04'
  16. steps:
  17. - bash: |
  18. if curl -s "https://api.github.com/repos/$BUILD_REPOSITORY_ID/issues/$SYSTEM_PULLREQUEST_PULLREQUESTNUMBER/labels" | grep '"name": "Seeking Testers"'
  19. then
  20. echo "##vso[task.setvariable variable=prHasCILabel;isOutput=true]true"
  21. fi
  22. displayName: 'Check if PR should keep artifacts'
  23. condition: eq(variables['Build.Reason'], 'PullRequest')
  24. name: checkPrLabel
  25. - job: 'Build_macOS'
  26. dependsOn: Prebuild
  27. variables:
  28. prHasCILabel: $[ dependencies.Prebuild.outputs['checkPrLabel.prHasCILabel'] ]
  29. pool:
  30. vmImage: 'macOS-10.15'
  31. steps:
  32. - script: git submodule update --init --recursive
  33. displayName: 'Checkout Submodules'
  34. - script: ./CI/install-dependencies-osx.sh
  35. displayName: 'Install Dependencies'
  36. - script: ./CI/before-script-osx.sh
  37. displayName: 'Cmake'
  38. - bash: |
  39. set -e
  40. cd ./build
  41. make -j4
  42. cd -
  43. displayName: 'Build'
  44. - script: ./CI/before-deploy-osx.sh
  45. condition: or(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['prHasCILabel'], true))
  46. displayName: 'Before Deploy'
  47. - task: PublishBuildArtifacts@1
  48. condition: or(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['prHasCILabel'], true))
  49. inputs:
  50. pathtoPublish: './nightly'
  51. artifactName: macbuild
  52. - job: 'Build_Windows32'
  53. dependsOn: Prebuild
  54. variables:
  55. prHasCILabel: $[ dependencies.Prebuild.outputs['checkPrLabel.prHasCILabel'] ]
  56. pool:
  57. vmImage: 'windows-2019'
  58. steps:
  59. - script: git submodule update --init --recursive
  60. displayName: 'Checkout Submodules'
  61. - script: ./CI/install-qt-win.cmd
  62. displayName: 'Install QT'
  63. - script: ./CI/install-script-win.cmd
  64. displayName: 'Download / Setup Deps / Run CMake'
  65. - task: MSBuild@1
  66. displayName: 'Build 32-bit'
  67. inputs:
  68. msbuildArguments: '/m /p:Configuration=RelWithDebInfo'
  69. solution: .\build32\obs-studio.sln
  70. - script: ./CI/before-deploy-win.cmd
  71. condition: or(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['prHasCILabel'], true))
  72. displayName: 'Before deploy'
  73. - task: PublishBuildArtifacts@1
  74. condition: or(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['prHasCILabel'], true))
  75. inputs:
  76. pathtoPublish: './build'
  77. artifactName: winbuild
  78. - job: 'Build_Windows64'
  79. dependsOn: Prebuild
  80. variables:
  81. prHasCILabel: $[ dependencies.Prebuild.outputs['checkPrLabel.prHasCILabel'] ]
  82. pool:
  83. vmImage: 'windows-2019'
  84. steps:
  85. - script: git submodule update --init --recursive
  86. displayName: 'Checkout Submodules'
  87. - script: ./CI/install-qt-win.cmd
  88. displayName: 'Install QT'
  89. - script: ./CI/install-script-win.cmd
  90. displayName: 'Download / Setup Deps / Run CMake'
  91. - task: MSBuild@1
  92. displayName: 'Build 64-bit'
  93. inputs:
  94. msbuildArguments: '/m /p:Configuration=RelWithDebInfo'
  95. solution: .\build64\obs-studio.sln
  96. - script: ./CI/before-deploy-win.cmd
  97. condition: or(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['prHasCILabel'], true))
  98. displayName: 'Before deploy'
  99. - task: PublishBuildArtifacts@1
  100. condition: or(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['prHasCILabel'], true))
  101. inputs:
  102. pathtoPublish: './build'
  103. artifactName: winbuild
  104. - job: 'Build_Linux'
  105. dependsOn: Prebuild
  106. variables:
  107. prHasCILabel: $[ dependencies.Prebuild.outputs['checkPrLabel.prHasCILabel'] ]
  108. pool:
  109. vmImage: 'ubuntu-18.04'
  110. steps:
  111. - script: git submodule update --init --recursive
  112. displayName: 'Checkout Submodules'
  113. - script: ./CI/install-dependencies-linux.sh
  114. displayName: 'Install Dependencies'
  115. - script: ./CI/before-script-linux.sh
  116. displayName: 'CMake'
  117. - bash: |
  118. set -e
  119. cd ./build
  120. make -j4
  121. cd -
  122. displayName: 'Build'