azure-pipelines.yml 4.1 KB

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