mirror of
https://github.com/Palakis/obs-websocket.git
synced 2024-08-30 18:12:16 +00:00
184 lines
5.0 KiB
YAML
184 lines
5.0 KiB
YAML
variables:
|
||
isReleaseMode: ${{ startsWith(variables['Build.SourceBranch'], 'refs/tags/') }}
|
||
|
||
trigger:
|
||
branches:
|
||
include:
|
||
- '4.x-current'
|
||
tags:
|
||
include:
|
||
- '*'
|
||
|
||
jobs:
|
||
- job: 'GenerateDocs'
|
||
condition: |
|
||
or(
|
||
eq(variables['Build.SourceBranch'], 'refs/heads/4.x-current'),
|
||
eq(variables['Build.SourceBranch'], 'refs/heads/master')
|
||
)
|
||
pool:
|
||
vmImage: 'ubuntu-18.04'
|
||
steps:
|
||
- checkout: self
|
||
submodules: false
|
||
|
||
- script: ./CI/generate-docs.sh
|
||
displayName: 'Generate docs'
|
||
env:
|
||
CHECKOUT_REF: $(Build.SourceBranch)
|
||
GH_TOKEN: $(GithubToken)
|
||
|
||
- job: 'Build_Windows'
|
||
pool:
|
||
vmImage: 'windows-2019'
|
||
variables:
|
||
build_config: RelWithDebInfo
|
||
DepsBasePath: 'D:\obsdependencies'
|
||
DepsPath32: '$(DepsBasePath)\win32'
|
||
DepsPath64: '$(DepsBasePath)\win64'
|
||
QtBaseDir: 'D:\QtDep'
|
||
QTDIR32: '$(QtBaseDir)\5.10.1\msvc2017'
|
||
QTDIR64: '$(QtBaseDir)\5.10.1\msvc2017_64'
|
||
OBSPath: 'D:\obs-studio'
|
||
steps:
|
||
- checkout: self
|
||
submodules: true
|
||
|
||
- script: ./CI/install-qt-win.cmd
|
||
displayName: 'Install Qt'
|
||
env:
|
||
QtBaseDir: $(QtBaseDir)
|
||
|
||
- task: Cache@2
|
||
displayName: Restore cached OBS Studio dependencies
|
||
inputs:
|
||
key: 'obsdeps | "$(Agent.OS)"'
|
||
restoreKeys: |
|
||
obsdeps | "$(Agent.OS)"
|
||
path: $(DepsBasePath)
|
||
|
||
- script: ./CI/download-obs-deps.cmd
|
||
displayName: 'Download OBS Studio dependencies'
|
||
|
||
- task: Cache@2
|
||
displayName: Restore cached OBS Studio builds
|
||
inputs:
|
||
key: 'obs | "$(Agent.OS)"'
|
||
restoreKeys: |
|
||
obs | "$(Agent.OS)"
|
||
path: $(OBSPath)
|
||
|
||
- script: ./CI/prepare-obs-windows.cmd
|
||
displayName: 'Checkout & CMake OBS Studio'
|
||
env:
|
||
build_config: $(build_config)
|
||
DepsPath32: $(DepsPath32)
|
||
DepsPath64: $(DepsPath64)
|
||
QTDIR32: $(QTDIR32)
|
||
QTDIR64: $(QTDIR64)
|
||
OBSPath: $(OBSPath)
|
||
|
||
- task: MSBuild@1
|
||
displayName: 'Build OBS Studio 32-bit'
|
||
inputs:
|
||
msbuildArguments: '/m /p:Configuration=$(build_config)'
|
||
solution: '$(OBSPath)\build32\obs-studio.sln'
|
||
|
||
- task: MSBuild@1
|
||
displayName: 'Build OBS Studio 64-bit'
|
||
inputs:
|
||
msbuildArguments: '/m /p:Configuration=$(build_config)'
|
||
solution: '$(OBSPath)\build64\obs-studio.sln'
|
||
|
||
- script: ./CI/prepare-windows.cmd
|
||
displayName: 'CMake obs-websocket'
|
||
env:
|
||
build_config: $(build_config)
|
||
QTDIR32: $(QTDIR32)
|
||
QTDIR64: $(QTDIR64)
|
||
OBSPath: $(OBSPath)
|
||
|
||
- task: MSBuild@1
|
||
displayName: 'Build obs-websocket 32-bit'
|
||
inputs:
|
||
msbuildArguments: '/m /p:Configuration=$(build_config)'
|
||
solution: '.\build32\obs-websocket.sln'
|
||
|
||
- task: MSBuild@1
|
||
displayName: 'Build obs-websocket 64-bit'
|
||
inputs:
|
||
msbuildArguments: '/m /p:Configuration=$(build_config)'
|
||
solution: '.\build64\obs-websocket.sln'
|
||
|
||
- script: ./CI/package-windows.cmd
|
||
displayName: 'Package obs-websocket'
|
||
|
||
- task: PublishBuildArtifacts@1
|
||
displayName: 'Upload package artifacts'
|
||
inputs:
|
||
pathtoPublish: './package'
|
||
artifactName: 'windows_build'
|
||
|
||
- job: 'Build_Linux'
|
||
pool:
|
||
vmImage: 'ubuntu-18.04'
|
||
variables:
|
||
BUILD_REASON: $(Build.Reason)
|
||
BRANCH_SHORT_NAME: $(Build.SourceBranchName)
|
||
BRANCH_FULL_NAME: $(Build.SourceBranch)
|
||
steps:
|
||
- checkout: self
|
||
submodules: true
|
||
|
||
- script: ./CI/install-dependencies-ubuntu.sh
|
||
displayName: 'Install dependencies'
|
||
|
||
- script: ./CI/build-ubuntu.sh
|
||
displayName: 'Build obs-websocket'
|
||
|
||
- script: ./CI/package-ubuntu.sh
|
||
displayName: 'Package obs-websocket'
|
||
|
||
- task: PublishBuildArtifacts@1
|
||
inputs:
|
||
pathtoPublish: './package'
|
||
artifactName: 'deb_build'
|
||
|
||
- job: 'Build_macOS'
|
||
pool:
|
||
vmImage: 'macos-10.14'
|
||
steps:
|
||
- checkout: self
|
||
submodules: true
|
||
|
||
- script: ./CI/install-dependencies-macos.sh
|
||
displayName: 'Install dependencies'
|
||
|
||
- script: ./CI/install-build-obs-macos.sh
|
||
displayName: 'Build OBS'
|
||
|
||
- script: ./CI/build-macos.sh
|
||
displayName: 'Build obs-websocket'
|
||
|
||
- task: InstallAppleCertificate@1
|
||
displayName: 'Install release signing certificates'
|
||
condition: eq(variables['isReleaseMode'], true)
|
||
inputs:
|
||
certSecureFile: 'Certificates.p12'
|
||
certPwd: $(secrets.macOS.certificatesImportPassword)
|
||
|
||
- script: ./CI/package-macos.sh
|
||
displayName: 'Package obs-websocket'
|
||
env:
|
||
RELEASE_MODE: $(isReleaseMode)
|
||
CODE_SIGNING_IDENTITY: $(secrets.macOS.codeSigningIdentity)
|
||
INSTALLER_SIGNING_IDENTITY: $(secrets.macOS.installerSigningIdentity)
|
||
AC_USERNAME: $(secrets.macOS.notarization.username)
|
||
AC_PASSWORD: $(secrets.macOS.notarization.password)
|
||
AC_PROVIDER_SHORTNAME: $(secrets.macOS.notarization.providerShortName)
|
||
|
||
- task: PublishBuildArtifacts@1
|
||
inputs:
|
||
pathtoPublish: './release'
|
||
artifactName: 'macos_build'
|