Fix of obs_context_data_free rare crash (#528) #521
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} |