This was needed to get the macOS 13 SDK when Xcode 14.0 was the default. It no longer is (at the time of writing the default is 14.2), so we can (and probably should) stop pinning to the older 14.1
494 lines
18 KiB
YAML
494 lines
18 KiB
YAML
name: 'BUILD'
|
|
|
|
on:
|
|
push:
|
|
paths-ignore: ['**.md']
|
|
branches:
|
|
- master
|
|
- 'release/**'
|
|
tags: ['*']
|
|
pull_request:
|
|
paths-ignore: ['**.md']
|
|
branches: [master]
|
|
|
|
env:
|
|
CACHE_REVISION: '006'
|
|
CEF_BUILD_VERSION_MAC: '5060'
|
|
CEF_HASH_MAC_X86_64: '88b950aa0bfc001061c35e7f1f3fefba856a6afb35e38b2b7b42ddd8dd239182'
|
|
CEF_HASH_MAC_ARM64: '98679b92eea6ea9959ac5aa54f46ca60681d8a86c768c35f496dbdd409bf0642'
|
|
CEF_BUILD_VERSION_LINUX: '5060'
|
|
CEF_BUILD_VERSION_WIN: '5060'
|
|
QT_VERSION_MAC: '6.4.1'
|
|
QT_HASH_MAC_X86_64: 'c5ed7bc9f6e802910ec539066bcf0a8d64100fafce568071f264c88c22c5859b'
|
|
QT_HASH_MAC_ARM64: '1ce472fd1e28f947456b72b1d7ab929d6e93cb774c2928e22eca9bb751b12ccf'
|
|
QT_HASH_MAC_UNIVERSAL: '873f7c9c9f7fcee740a79c075b32a505c932c816d928807fa16f3439c610fbfd'
|
|
QT_VERSION_WIN: '6.3.1'
|
|
DEPS_VERSION_MAC: '2022-11-21'
|
|
DEPS_HASH_MAC_X86_64: 'ed0a145e88496f8975da14a07939dbe5633e60510aada34509a4aef64a66e438'
|
|
DEPS_HASH_MAC_ARM64: 'f397dc524e5ee7f85684f0b9661c45957446e28d166fcd6dfacf895c9d4d2521'
|
|
DEPS_VERSION_WIN: '2023-01-06'
|
|
VLC_VERSION_MAC: '3.0.8'
|
|
VLC_HASH_MAC: 'e0149ef4a20a19b9ecd87309c2d27787ee3f47dfd47c6639644bc1f6fd95bdf6'
|
|
VLC_VERSION_WIN: '3.0.0-git'
|
|
TWITCH_CLIENTID: ${{ secrets.TWITCH_CLIENT_ID }}
|
|
TWITCH_HASH: ${{ secrets.TWITCH_HASH }}
|
|
RESTREAM_CLIENTID: ${{ secrets.RESTREAM_CLIENTID }}
|
|
RESTREAM_HASH: ${{ secrets.RESTREAM_HASH }}
|
|
YOUTUBE_CLIENTID: ${{ secrets.YOUTUBE_CLIENTID }}
|
|
YOUTUBE_CLIENTID_HASH: ${{ secrets.YOUTUBE_CLIENTID_HASH }}
|
|
YOUTUBE_SECRET: ${{ secrets.YOUTUBE_SECRET }}
|
|
YOUTUBE_SECRET_HASH: ${{ secrets.YOUTUBE_SECRET_HASH }}
|
|
|
|
jobs:
|
|
clang_check:
|
|
name: '01 - Code Format Check'
|
|
runs-on: [ubuntu-22.04]
|
|
steps:
|
|
- name: 'Checkout'
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: 'recursive'
|
|
|
|
- name: 'Install clang-format'
|
|
run: sudo apt-get install -y clang-format-13
|
|
|
|
- name: 'Run clang-format'
|
|
run: |
|
|
./CI/check-format.sh
|
|
./CI/check-changes.sh
|
|
|
|
- name: 'Install cmake-format'
|
|
run: sudo pip install cmakelang
|
|
|
|
- name: 'Run cmake-format'
|
|
run: |
|
|
./CI/check-cmake.sh
|
|
|
|
config:
|
|
name: '01 - Configure Build Jobs'
|
|
runs-on: [ubuntu-22.04]
|
|
outputs:
|
|
create_artifacts: ${{ steps.config.outputs.create_artifacts }}
|
|
cache_date: ${{ steps.config.outputs.cache_date }}
|
|
steps:
|
|
- name: 'Configure Build Jobs'
|
|
id: config
|
|
run: |
|
|
if [[ "${{ github.event_name == 'pull_request' }}" == "true" ]]; then
|
|
echo "create_artifacts=${{ contains(github.event.pull_request.labels.*.name, 'Seeking Testers') }}" >> $GITHUB_OUTPUT
|
|
else
|
|
echo 'create_artifacts=true' >> $GITHUB_OUTPUT
|
|
fi
|
|
echo "cache_date=$(date +"%Y-%m-%d")" >> $GITHUB_OUTPUT
|
|
|
|
macos_build:
|
|
name: '02 - macOS'
|
|
runs-on: [macos-12]
|
|
strategy:
|
|
matrix:
|
|
arch: ['x86_64', 'arm64']
|
|
if: always()
|
|
needs: [config, clang_check]
|
|
env:
|
|
MACOSX_DEPLOYMENT_TARGET_X86_64: '10.15'
|
|
MACOSX_DEPLOYMENT_TARGET_ARM64: '11.0'
|
|
SPARKLE_VERSION: '2.3.2'
|
|
SPARKLE_HASH: '2b3fe6918ca20a83729aad34f8f693a678b714a17d33b5f13ca2d25edfa7eed3'
|
|
SPARKLE_APPCAST_URL: 'https://obsproject.com/osx_update/updates_${{ matrix.arch }}_v2.xml'
|
|
SPARKLE_PUBLIC_KEY: 'HQ5/Ba9VHOuEWaM0jtVjZzgHKFJX9YTl+HNVpgNF0iM='
|
|
BLOCKED_FORMULAS: 'speexdsp curl php composer'
|
|
CODESIGN_IDENT: '-'
|
|
HAVE_CODESIGN_IDENTITY: ${{ secrets.MACOS_SIGNING_IDENTITY != '' && secrets.MACOS_SIGNING_CERT != '' }}
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
working-directory: 'obs-studio'
|
|
steps:
|
|
- name: 'Checkout'
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: 'recursive'
|
|
path: 'obs-studio'
|
|
fetch-depth: 0
|
|
|
|
- name: 'Restore ccache from cache'
|
|
id: ccache-cache
|
|
uses: actions/cache@v3
|
|
env:
|
|
CACHE_NAME: 'ccache-cache'
|
|
with:
|
|
path: ${{ github.workspace }}/.ccache
|
|
key: ${{ runner.os }}-pr-${{ env.CACHE_NAME }}-${{ matrix.arch }}-${{ needs.config.outputs.cache_date }}
|
|
|
|
- name: 'Restore Chromium Embedded Framework from cache'
|
|
id: cef-cache
|
|
uses: actions/cache@v3
|
|
env:
|
|
CACHE_NAME: 'cef-cache'
|
|
with:
|
|
path: ${{ github.workspace }}/obs-build-dependencies/cef_binary_${{ env.CEF_BUILD_VERSION_MAC }}_macos_${{ matrix.arch }}
|
|
key: ${{ runner.os }}-pr-${{ env.CACHE_NAME }}-${{ env.CEF_BUILD_VERSION_MAC }}-${{ matrix.arch }}-${{ env.CACHE_REVISION }}
|
|
|
|
- name: 'Restore VLC dependency from cache'
|
|
id: vlc-cache
|
|
uses: actions/cache@v3
|
|
env:
|
|
CACHE_NAME: 'vlc-cache'
|
|
with:
|
|
path: ${{ github.workspace }}/obs-build-dependencies/vlc-${{ env.VLC_VERSION_MAC }}
|
|
key: ${{ runner.os }}-pr-${{ env.CACHE_NAME }}-${{ env.VLC_VERSION_MAC }}-${{ env.CACHE_REVISION }}
|
|
|
|
- name: 'Restore Sparkle dependency from cache'
|
|
id: sparkle-cache
|
|
uses: actions/cache@v3
|
|
env:
|
|
CACHE_NAME: 'sparkle-cache'
|
|
with:
|
|
path: ${{ github.workspace }}/obs-build-dependencies/obs-deps/lib/Sparkle.framework
|
|
key: ${{ runner.os }}-pr-${{ env.CACHE_NAME }}-${{ env.SPARKLE_VERSION }}-${{ env.CACHE_REVISION }}
|
|
|
|
- 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 "commitHash=$(git rev-parse --short=9 HEAD)" >> $GITHUB_OUTPUT
|
|
|
|
- name: 'Install dependencies'
|
|
env:
|
|
RESTORED_VLC: ${{ steps.vlc-cache.outputs.cache-hit }}
|
|
RESTORED_SPARKLE: ${{ steps.sparkle-cache.outputs.cache-hit }}
|
|
RESTORED_CEF: ${{ steps.cef-cache.outputs.cache-hit }}
|
|
run: CI/macos/01_install_dependencies.sh --architecture "${{ matrix.arch }}"
|
|
|
|
- name: 'Install Apple Developer Certificate'
|
|
if: ${{ startsWith(github.ref, 'refs/tags/') && github.event_name != 'pull_request' && env.HAVE_CODESIGN_IDENTITY == 'true' }}
|
|
uses: apple-actions/import-codesign-certs@253ddeeac23f2bdad1646faac5c8c2832e800071
|
|
with:
|
|
p12-file-base64: ${{ secrets.MACOS_SIGNING_CERT }}
|
|
p12-password: ${{ secrets.MACOS_SIGNING_CERT_PASSWORD }}
|
|
|
|
- name: 'Set Signing Identity'
|
|
if: ${{ startsWith(github.ref, 'refs/tags/') && github.event_name != 'pull_request' && env.HAVE_CODESIGN_IDENTITY == 'true' }}
|
|
run: |
|
|
echo "CODESIGN_IDENT=${{ secrets.MACOS_SIGNING_IDENTITY }}" >> $GITHUB_ENV
|
|
echo "BUILD_FOR_DISTRIBUTION=ON" >> $GITHUB_ENV
|
|
|
|
- name: 'Build OBS'
|
|
run: CI/macos/02_build_obs.sh --codesign --architecture "${{ matrix.arch }}"
|
|
|
|
- name: 'Create build artifact'
|
|
if: ${{ success() && fromJSON(needs.config.outputs.create_artifacts) }}
|
|
run: |
|
|
CI/macos/03_package_obs.sh --codesign --architecture "${{ matrix.arch }}"
|
|
ARTIFACT_NAME=$(basename $(/usr/bin/find build -type f -name "obs-studio-*.dmg" -depth 1 | head -1))
|
|
echo "FILE_NAME=${ARTIFACT_NAME}" >> $GITHUB_ENV
|
|
|
|
- name: 'Upload build Artifact'
|
|
if: ${{ success() && fromJSON(needs.config.outputs.create_artifacts) }}
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: 'obs-studio-macos-${{ matrix.arch }}-${{ steps.setup.outputs.commitHash }}'
|
|
path: '${{ github.workspace }}/obs-studio/build/${{ env.FILE_NAME }}'
|
|
|
|
linux_build:
|
|
name: '02 - Linux'
|
|
runs-on: ${{ matrix.ubuntu }}
|
|
strategy:
|
|
matrix:
|
|
ubuntu: ['ubuntu-20.04', 'ubuntu-22.04']
|
|
if: always()
|
|
needs: [config, clang_check]
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
working-directory: 'obs-studio'
|
|
env:
|
|
BUILD_FOR_DISTRIBUTION: ${{ startsWith(github.ref, 'refs/tags/') && github.event_name != 'pull_request' }}
|
|
steps:
|
|
- name: 'Checkout'
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: 'recursive'
|
|
path: 'obs-studio'
|
|
fetch-depth: 0
|
|
|
|
- name: 'Restore ccache from cache'
|
|
id: ccache-cache
|
|
uses: actions/cache@v3
|
|
env:
|
|
CACHE_NAME: 'ccache-cache'
|
|
with:
|
|
path: ${{ github.workspace }}/.ccache
|
|
key: ${{ runner.os }}-pr-${{ env.CACHE_NAME }}-${{ matrix.ubuntu }}-${{ needs.config.outputs.cache_date }}
|
|
|
|
- name: 'Restore Chromium Embedded Framework from cache'
|
|
id: cef-cache
|
|
uses: actions/cache@v3
|
|
env:
|
|
CACHE_NAME: 'cef-cache'
|
|
with:
|
|
path: ${{ github.workspace }}/obs-build-dependencies/cef_binary_${{ env.CEF_BUILD_VERSION_LINUX }}_linux64
|
|
key: ${{ runner.os }}-pr-${{ env.CACHE_NAME }}-${{ env.CEF_BUILD_VERSION_LINUX }}-${{ env.CACHE_REVISION }}
|
|
|
|
- name: 'Setup build environment'
|
|
id: setup
|
|
run: |
|
|
echo "commitHash=$(git rev-parse --short=9 HEAD)" >> $GITHUB_OUTPUT
|
|
|
|
- name: 'Install dependencies'
|
|
env:
|
|
RESTORED_CEF: ${{ steps.cef-cache.outputs.cache-hit }}
|
|
run: CI/linux/01_install_dependencies.sh --disable-pipewire
|
|
|
|
- name: 'Build OBS'
|
|
run: CI/linux/02_build_obs.sh --disable-pipewire
|
|
|
|
- name: 'Run tests'
|
|
if: success()
|
|
run: cmake --build build -t test
|
|
|
|
- name: 'Create build artifact'
|
|
if: ${{ success() && fromJSON(needs.config.outputs.create_artifacts) }}
|
|
run: |
|
|
CI/linux/03_package_obs.sh
|
|
ARTIFACT_NAME=$(basename $(/usr/bin/find build -maxdepth 1 -type f -name "obs-studio-*.deb" | sort -rn | head -1))
|
|
echo "FILE_NAME=${ARTIFACT_NAME}" >> $GITHUB_ENV
|
|
echo "DEBUG_FILE_NAME=${ARTIFACT_NAME//.deb/-dbgsym.ddeb}" >> $GITHUB_ENV
|
|
|
|
- name: 'Upload build Artifact'
|
|
if: ${{ success() && fromJSON(needs.config.outputs.create_artifacts) }}
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: 'obs-studio-${{ matrix.ubuntu }}-${{ steps.setup.outputs.commitHash }}'
|
|
path: '${{ github.workspace }}/obs-studio/build/${{ env.FILE_NAME }}'
|
|
|
|
- name: 'Upload debug symbol Artifact'
|
|
if: ${{ success() && fromJSON(needs.config.outputs.create_artifacts) }}
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: 'obs-studio-${{ matrix.ubuntu }}-${{ steps.setup.outputs.commitHash }}-dbgsym'
|
|
path: '${{ github.workspace }}/obs-studio/build/${{ env.DEBUG_FILE_NAME }}'
|
|
|
|
windows_build:
|
|
name: '02 - Windows'
|
|
runs-on: [windows-2022]
|
|
needs: [config, clang_check]
|
|
if: always()
|
|
strategy:
|
|
matrix:
|
|
arch: [x64, x86]
|
|
env:
|
|
CMAKE_GENERATOR: 'Visual Studio 17 2022'
|
|
CMAKE_SYSTEM_VERSION: '10.0.18363.657'
|
|
VIRTUALCAM-GUID: 'A3FCE0F5-3493-419F-958A-ABA1250EC20B'
|
|
BUILD_FOR_DISTRIBUTION: ${{ startsWith(github.ref, 'refs/tags/') && github.event_name != 'pull_request' }}
|
|
defaults:
|
|
run:
|
|
working-directory: 'obs-studio'
|
|
steps:
|
|
- name: 'Checkout'
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: 'recursive'
|
|
path: 'obs-studio'
|
|
fetch-depth: 0
|
|
|
|
- name: 'Add msbuild to PATH'
|
|
uses: microsoft/setup-msbuild@v1.1
|
|
|
|
- name: 'Restore VLC dependency from cache'
|
|
id: vlc-cache
|
|
uses: actions/cache@v3
|
|
env:
|
|
CACHE_NAME: 'vlc-cache'
|
|
with:
|
|
path: ${{ github.workspace }}/obs-build-dependencies/vlc-${{ env.VLC_VERSION_WIN }}
|
|
key: ${{ runner.os }}-pr-${{ env.CACHE_NAME }}-${{ env.VLC_VERSION_WIN }}-${{ env.CACHE_REVISION }}
|
|
|
|
- name: 'Restore Chromium Embedded Framework from cache'
|
|
id: cef-cache
|
|
uses: actions/cache@v3
|
|
env:
|
|
CACHE_NAME: 'cef-cache'
|
|
with:
|
|
path: ${{ github.workspace }}/obs-build-dependencies/cef_binary_${{ env.CEF_BUILD_VERSION_WIN }}_windows_${{ matrix.arch }}
|
|
key: ${{ runner.os }}-pr-${{ env.CACHE_NAME }}-${{ env.CEF_BUILD_VERSION_WIN }}-${{ matrix.arch }}-${{ env.CACHE_REVISION }}
|
|
|
|
- name: Setup Environment
|
|
id: setup
|
|
run: |
|
|
$CommitHash = git rev-parse --short=9 HEAD
|
|
"commitHash=${CommitHash}" >> $env:GITHUB_OUTPUT
|
|
|
|
- name: 'Install dependencies'
|
|
env:
|
|
RESTORED_VLC: ${{ steps.vlc-cache.outputs.cache-hit }}
|
|
RESTORED_CEF: ${{ steps.cef-cache.outputs.cache-hit }}
|
|
run: CI/windows/01_install_dependencies.ps1 -BuildArch ${{ matrix.arch }}
|
|
|
|
- name: 'Build OBS'
|
|
run: CI/windows/02_build_obs.ps1 -BuildArch ${{ matrix.arch }}
|
|
|
|
- name: 'Create build artifact'
|
|
if: ${{ success() && fromJSON(needs.config.outputs.create_artifacts) }}
|
|
run: |
|
|
CI/windows/03_package_obs.ps1 -BuildArch ${{ matrix.arch }} -Package
|
|
$ArtifactName = Get-ChildItem -filter "obs-studio-*-windows-${{ matrix.arch }}.zip" -File
|
|
Write-Output "FILE_NAME=${ArtifactName}" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
|
|
|
|
- name: 'Upload build artifact'
|
|
if: ${{ success() && fromJSON(needs.config.outputs.create_artifacts) }}
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: 'obs-studio-windows-${{ matrix.arch }}-${{ steps.setup.outputs.commitHash }}'
|
|
path: '${{ env.FILE_NAME }}'
|
|
|
|
linux_package:
|
|
name: '02 - Flatpak'
|
|
runs-on: [ubuntu-latest]
|
|
needs: [config, clang_check]
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
container:
|
|
image: bilelmoussaoui/flatpak-github-actions:kde-6.4
|
|
options: --privileged
|
|
steps:
|
|
|
|
- name: 'Checkout'
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: 'recursive'
|
|
fetch-depth: 0
|
|
|
|
- name: 'Setup build environment'
|
|
run: |
|
|
git config --global --add safe.directory $GITHUB_WORKSPACE
|
|
echo "OBS_GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV
|
|
echo "OBS_GIT_HASH=$(git rev-parse --short=9 HEAD)" >> $GITHUB_ENV
|
|
echo "OBS_GIT_TAG=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV
|
|
|
|
- name: Build Flatpak Manifest
|
|
uses: flatpak/flatpak-github-actions/flatpak-builder@v5
|
|
with:
|
|
build-bundle: ${{ fromJSON(needs.config.outputs.create_artifacts) }}
|
|
bundle: obs-studio-flatpak-${{ env.OBS_GIT_HASH }}.flatpak
|
|
manifest-path: CI/flatpak/com.obsproject.Studio.json
|
|
cache-key: flatpak-builder-${{ hashFiles('CI/flatpak/com.obsproject.Studio.json') }}
|
|
|
|
windows_package:
|
|
name: '03 - Windows Installer'
|
|
runs-on: [windows-latest]
|
|
needs: [windows_build]
|
|
if: ${{ startsWith(github.ref, 'refs/tags/') && github.event_name != 'pull_request' }}
|
|
env:
|
|
BUILD_FOR_DISTRIBUTION: 'ON'
|
|
steps:
|
|
- name: 'Checkout'
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Setup Environment
|
|
id: setup
|
|
run: |
|
|
$CommitHash = git rev-parse --short=9 HEAD
|
|
"commitHash=${CommitHash}" >> $env:GITHUB_OUTPUT
|
|
|
|
- name: 'Add msbuild to PATH'
|
|
uses: microsoft/setup-msbuild@v1.1
|
|
|
|
- name: 'Download 64-bit artifact'
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
name: 'obs-studio-windows-x64-${{ steps.setup.outputs.commitHash }}'
|
|
|
|
- name: 'Download 32-bit artifact'
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
name: 'obs-studio-windows-x86-${{ steps.setup.outputs.commitHash }}'
|
|
|
|
- name: 'Unpack Windows build artifacts'
|
|
id: unpack
|
|
run: |
|
|
if (!(Test-Path install_temp)) {
|
|
$null = New-Item -ItemType Directory -Force -Path install_temp
|
|
}
|
|
|
|
Expand-Archive -Path "$(Get-ChildItem -filter "obs-studio-*-windows-x86.zip" -File)" -DestinationPath install_temp
|
|
Expand-Archive -Path "$(Get-ChildItem -filter "obs-studio-*-windows-x64.zip" -File)" -Force -DestinationPath install_temp
|
|
|
|
CI/windows/03_package_obs.ps1 -CombinedArchs -Package
|
|
|
|
$ArtifactName = (Get-ChildItem -filter "obs-studio-*-windows-x86+x64.zip" -File).Name
|
|
"filename=${ArtifactName}" >> $env:GITHUB_OUTPUT
|
|
|
|
- name: 'Upload build artifact'
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: 'obs-studio-windows-installer'
|
|
path: '${{ steps.unpack.outputs.filename }}'
|
|
|
|
macos_release:
|
|
name: '03 - macOS notarized image'
|
|
runs-on: [macos-12]
|
|
needs: [macos_build]
|
|
env:
|
|
HAVE_CODESIGN_IDENTITY: ${{ secrets.MACOS_SIGNING_IDENTITY != '' && secrets.MACOS_SIGNING_CERT != '' }}
|
|
BUILD_FOR_DISTRIBUTION: 'ON'
|
|
if: ${{ startsWith(github.ref, 'refs/tags/') && github.event_name != 'pull_request' }}
|
|
strategy:
|
|
matrix:
|
|
arch: ['x86_64', 'arm64']
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
steps:
|
|
- name: 'Checkout'
|
|
if: env.HAVE_CODESIGN_IDENTITY == 'true'
|
|
uses: actions/checkout@v3
|
|
|
|
- name: 'Setup build environment'
|
|
id: setup
|
|
run: |
|
|
echo "commitHash=$(git rev-parse --short=9 HEAD)" >> $GITHUB_OUTPUT
|
|
|
|
- name: 'Download artifact'
|
|
if: env.HAVE_CODESIGN_IDENTITY == 'true'
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
name: 'obs-studio-macos-${{ matrix.arch }}-${{ steps.setup.outputs.commitHash }}'
|
|
|
|
- name: 'Install Apple Developer Certificate'
|
|
if: env.HAVE_CODESIGN_IDENTITY == 'true'
|
|
uses: apple-actions/import-codesign-certs@253ddeeac23f2bdad1646faac5c8c2832e800071
|
|
with:
|
|
p12-file-base64: ${{ secrets.MACOS_SIGNING_CERT }}
|
|
p12-password: ${{ secrets.MACOS_SIGNING_CERT_PASSWORD }}
|
|
|
|
- name: 'Create disk image for distribution'
|
|
if: env.HAVE_CODESIGN_IDENTITY == 'true'
|
|
env:
|
|
CODESIGN_IDENT: ${{ secrets.MACOS_SIGNING_IDENTITY }}
|
|
CODESIGN_IDENT_USER: ${{ secrets.MACOS_NOTARIZATION_USERNAME }}
|
|
CODESIGN_IDENT_PASS: ${{ secrets.MACOS_NOTARIZATION_PASSWORD }}
|
|
run: |
|
|
ARTIFACT_NAME=$(/usr/bin/find . -type f -name "obs-studio-*.dmg" -depth 1 | head -1)
|
|
CI/macos/03_package_obs.sh --notarize-image ${ARTIFACT_NAME}
|
|
|
|
echo "FILE_NAME=$(basename ${ARTIFACT_NAME})" >> $GITHUB_ENV
|
|
|
|
- name: 'Upload build Artifact'
|
|
if: env.HAVE_CODESIGN_IDENTITY == 'true'
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: 'obs-studio-macos-${{ matrix.arch }}-notarized'
|
|
path: '${{ github.workspace }}/${{ env.FILE_NAME }}'
|