Skip to content

mac-audio.c race condition fix (#527) #515

mac-audio.c race condition fix (#527)

mac-audio.c race condition fix (#527) #515

name: 'CI Multiplatform Build'
on:
push:
paths-ignore:
- '**.md'
branches: [ "streamlabs" ]
tags:
- '*'
pull_request:
paths-ignore:
- '**.md'
branches: [ "streamlabs" ]
env:
InstallPath: "packed_build"
BUILD_DIRECTORY: "build"
RELEASE_BUCKET: "obsstudios3.streamlabs.com"
PACKAGE_NAME: "libobs"
jobs:
macos64:
name: 'macOS'
runs-on: [macos-12]
strategy:
matrix:
arch: ['x86_64', 'arm64']
ReleaseName: [release, debug]
include:
- ReleaseName: release
BUILD_CONFIG: RelWithDebInfo
- ReleaseName: debug
BUILD_CONFIG: Debug
env:
OS_TAG: "osx"
MACOSX_DEPLOYMENT_TARGET_X86_64: '10.15'
MACOSX_DEPLOYMENT_TARGET_ARM64: '11.0'
CEF_BUILD_VERSION_MAC: '5060'
DEPS_VERSION_MAC: '2022-08-02-b230301'
QT_DEPS_VERSION_MAC: '2022-08-02'
VLC_VERSION_MAC: '3.0.8'
QT_VERSION_MAC: '6.3.1'
SPARKLE_VERSION: '1.26.0'
WEBRTC_VERSION_MAC: 'm94-b230130'
LIBMEDIASOUPCLIENT_VERSION_MAC: '55d724f-b230130'
steps:
- name: 'Checkout'
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Get the version
id: get_version
run: echo "VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT
shell: bash
- name: 'Setup build environment'
id: setup
run: |
REMOVE_FORMULAS=""
for FORMULA in ${{ env.BLOCKED_FORMULAS }}; do
if [ -d "/usr/local/opt/${FORMULA}" ]; then
REMOVE_FORMULAS="${REMOVE_FORMULAS}${FORMULA} "
fi
done
if [ -n "${REMOVE_FORMULAS}" ]; then
brew uninstall ${REMOVE_FORMULAS}
fi
echo "VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT
- name: 'Switch to Xcode 14.1'
run: sudo xcode-select -switch /Applications/Xcode_14.1.app
- name: Configure / Build
run: ./slobs_CI/build-script-osx.sh
env:
ReleaseName: ${{matrix.ReleaseName}}
BuildConfig: ${{matrix.BuildConfig}}
CefBuildConfig: ${{matrix.CefBuildConfig}}
ARCH: ${{matrix.arch}}
- name: Tar artifact for deployment
if: startsWith(github.ref, 'refs/tags/')
run: cd ${{env.InstallPath}} && 7z a -r ../${{env.TARGET_ARTIFACT}}.7z *
env:
TARGET_ARTIFACT: ${{env.PACKAGE_NAME}}-${{env.OS_TAG}}-${{matrix.ReleaseName}}-${{ steps.get_version.outputs.VERSION }}-${{ matrix.arch }}
- name: Configure AWS credentials
if: startsWith(github.ref, 'refs/tags/')
uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{secrets.AWS_RELEASE_ACCESS_KEY_ID}}
aws-secret-access-key: ${{secrets.AWS_RELEASE_SECRET_ACCESS_KEY}}
aws-region: us-west-2
- name: Deploy
if: startsWith(github.ref, 'refs/tags/')
run: aws s3 cp ${{env.TARGET_ARTIFACT}}.7z s3://${{env.RELEASE_BUCKET}} --acl public-read
env:
TARGET_ARTIFACT: ${{env.PACKAGE_NAME}}-${{env.OS_TAG}}-${{matrix.ReleaseName}}-${{ steps.get_version.outputs.VERSION }}-${{ matrix.arch }}
- name: 'Upload debug files to Sentry'
if: startsWith(github.ref, 'refs/tags/')
run: 'python ./slobs_CI/sentry-osx.py'
env:
SENTRY_AUTH_TOKEN: ${{secrets.SENTRY_AUTH_TOKEN}}
BUILDCONFIG: ${{matrix.BuildConfig}}
win64:
name: 'Windows 64-bit'
runs-on: windows-latest
strategy:
matrix:
ReleaseName: [release, debug]
include:
- ReleaseName: release
BuildConfig: RelWithDebInfo
CefBuildConfig: Release
- ReleaseName: debug
BuildConfig: Debug
CefBuildConfig: Debug
env:
OS_TAG: "windows64"
CEF_VERSION: 5060
WIN_DEPS_VERSION: windows-deps-2022-08-02-x64-sl.1
GRPC_VERSION: v1.47.0
CMakeGenerator: Visual Studio 17 2022
VLC_VERSION: vlc_3.0.0-git
steps:
- name: 'Add msbuild to PATH'
uses: microsoft/setup-msbuild@v1
- name: Get the version of aws cli
run: aws --version
shell: powershell
- name: Install specific version of AWS CLI
run: |
$version = "2.12.4"
$zipfile = "AWSCLIV2.zip"
Invoke-WebRequest -OutFile $zipfile "https://awscli.amazonaws.com/AWSCLIV2-$version.msi"
Start-Process msiexec.exe -Wait -ArgumentList "/i $zipfile /qn"
rm $zipfile
shell: pwsh
- name: Get the version of aws cli after install
run: aws --version
shell: powershell
- name: 'Checkout'
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Get the version
id: get_version
run: echo "VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT
shell: bash
- name: Configure / Build
run: ./slobs_CI/win-build.cmd
shell: cmd
env:
ReleaseName: ${{matrix.ReleaseName}}
BuildConfig: ${{matrix.BuildConfig}}
CefBuildConfig: ${{matrix.CefBuildConfig}}
- name: Fetch symsrv-scripts
if: startsWith(github.ref, 'refs/tags/')
uses: actions/checkout@v3
with:
fetch-depth: 2
repository: stream-labs/symsrv-scripts
path: symsrv-scripts
- name: Run symbol server scripts
if: startsWith(github.ref, 'refs/tags/')
run: ./symsrv-scripts/main.bat "${{ github.workspace }}/symsrv-scripts" ".\main.ps1 -localSourceDir '${{ github.workspace }}' -repo_userId 'stream-labs' -repo_name 'obs-studio' -repo_branch '${{ github.sha }}' -subModules 'plugins/mediasoup-connector,stream-labs,mediasoup-connector,streamlabs;plugins/enc-amf,stream-labs,obs-amd-encoder,streamlabs;plugins/motion-effect,stream-labs,motion-effect,master;plugins/obs-browser,stream-labs,obs-browser,streamlabs;plugins/obs-ndi,stream-labs,obs-ndi,streamlabs;plugins/obs-ndi,stream-labs,obs-amd-encoder,streamlabs;plugins/obs-openvr,stream-labs,OBS-OpenVR-Input-Plugin,master;plugins/obs-vst,stream-labs,obs-vst,streamlabs;plugins/slobs-virtual-cam,stream-labs,slobs-virtual-cam,streamlabs;plugins/win-dshow/libdshowcapture,stream-labs,libdshowcapture,streamlabs'"
env:
AWS_SYMB_ACCESS_KEY_ID: ${{secrets.AWS_SYMB_ACCESS_KEY_ID}}
AWS_SYMB_SECRET_ACCESS_KEY: ${{secrets.AWS_SYMB_SECRET_ACCESS_KEY}}
shell: powershell
- name: Tar artifact for deployment
if: startsWith(github.ref, 'refs/tags/')
run: 7z a -r ${{env.TARGET_ARTIFACT}}.7z ${{env.InstallPath}}
env:
TARGET_ARTIFACT: ${{env.PACKAGE_NAME}}-${{env.OS_TAG}}-${{matrix.ReleaseName}}-${{ steps.get_version.outputs.VERSION }}
- name: Configure AWS credentials
if: startsWith(github.ref, 'refs/tags/')
uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{secrets.AWS_RELEASE_ACCESS_KEY_ID}}
aws-secret-access-key: ${{secrets.AWS_RELEASE_SECRET_ACCESS_KEY}}
aws-region: us-west-2
- name: Deploy
if: startsWith(github.ref, 'refs/tags/')
run: aws s3 cp ${{env.TARGET_ARTIFACT}}.7z s3://${{env.RELEASE_BUCKET}} --acl public-read
env:
TARGET_ARTIFACT: ${{env.PACKAGE_NAME}}-${{env.OS_TAG}}-${{matrix.ReleaseName}}-${{ steps.get_version.outputs.VERSION }}