Fixes issue where CRT bloom was washing colors out. Updates version to 1.0.2 #97
Workflow file for this run
This file contains hidden or 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: build obs plugin | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| env: | |
| PLUGIN_NAME: obs-retro-effects | |
| OBS_VERSION: 28.0.0-rc1 | |
| jobs: | |
| macos: | |
| name: macOS | |
| runs-on: macos-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| arch: [x86_64, arm64, universal] | |
| outputs: | |
| commitHash: ${{ steps.setup.outputs.commitHash }} | |
| env: | |
| CODESIGN_IDENT: "-" | |
| CODESIGN_IDENT_INSTALLER: "" | |
| MACOSX_DEPLOYMENT_TARGET: "10.15" | |
| defaults: | |
| run: | |
| shell: zsh {0} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| path: plugin | |
| submodules: recursive | |
| - name: Checkout obs-studio | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: "obsproject/obs-studio" | |
| path: obs-studio | |
| fetch-depth: 0 | |
| submodules: recursive | |
| - name: Setup Environment | |
| id: setup | |
| working-directory: ${{ github.workspace }}/plugin | |
| run: | | |
| ## SETUP ENVIRONMENT SCRIPT | |
| print '::group::Clean Homebrew Environment' | |
| typeset -a to_remove=() | |
| for formula (speexdsp curl php) { | |
| if [[ -d ${HOMEBREW_PREFIX}/opt/${formula} ]] to_remove+=(${formula}) | |
| } | |
| if (( #to_remove > 0 )) brew uninstall --ignore-dependencies ${to_remove} | |
| print '::endgroup::' | |
| print '::group::Set up code signing' | |
| if [[ '${{ secrets.MACOS_SIGNING_APPLICATION_IDENTITY }}' != '' && \ | |
| '${{ secrets.MACOS_SIGNING_INSTALLER_IDENTITY }}' != '' && \ | |
| '${{ secrets.MACOS_SIGNING_CERT }}' != '' ]] { | |
| print 'haveCodesignIdent=true' >> $GITHUB_OUTPUT | |
| } else { | |
| print 'haveCodesignIdent=false' >> $GITHUB_OUTPUT | |
| } | |
| if [[ '${{ secrets.MACOS_NOTARIZATION_USERNAME }}' != '' && \ | |
| '${{ secrets.MACOS_NOTARIZATION_PASSWORD }}' != '' ]] { | |
| print 'haveNotarizationUser=true' >> $GITHUB_OUTPUT | |
| } else { | |
| print 'haveNotarizationUser=false' >> $GITHUB_OUTPUT | |
| } | |
| print '::endgroup::' | |
| print "ccacheDate=$(date +"%Y-%m-%d")" >> $GITHUB_OUTPUT | |
| print "commitHash=${"$(git rev-parse HEAD)"[0,9]}" >> $GITHUB_OUTPUT | |
| - name: Restore Compilation Cache | |
| id: ccache-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ github.workspace }}/.ccache | |
| key: macos-${{ matrix.arch }}-ccache-plugin-${{ steps.setup.outputs.ccacheDate }} | |
| restore-keys: | | |
| macos-${{ matrix.arch }}-ccache-plugin- | |
| - name: Check for GitHub Labels | |
| id: seekingTesters | |
| if: ${{ github.event_name == 'pull_request' }} | |
| run: | | |
| if [[ -n "$(curl -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" -s "${{ github.event.pull_request.url }}" | jq -e '.labels[] | select(.name == "Seeking Testers")')" ]] { | |
| print 'found=true' >> $GITHUB_OUTPUT | |
| } else { | |
| print 'found=false' >> $GITHUB_OUTPUT | |
| } | |
| - name: Install Apple Developer Certificate | |
| if: ${{ github.event_name != 'pull_request' && steps.setup.outputs.haveCodesignIdent == 'true' }} | |
| uses: apple-actions/import-codesign-certs@253ddeeac23f2bdad1646faac5c8c2832e800071 | |
| with: | |
| keychain-password: ${{ github.run_id }} | |
| p12-file-base64: ${{ secrets.MACOS_SIGNING_CERT }} | |
| p12-password: ${{ secrets.MACOS_SIGNING_CERT_PASSWORD }} | |
| - name: Set Signing Identity | |
| if: ${{ github.event_name != 'pull_request' && steps.setup.outputs.haveCodesignIdent == 'true' }} | |
| run: | | |
| print "CODESIGN_IDENT=${{ secrets.MACOS_SIGNING_APPLICATION_IDENTITY }}" >> $GITHUB_ENV | |
| print "CODESIGN_IDENT_INSTALLER=${{ secrets.MACOS_SIGNING_INSTALLER_IDENTITY }}" >> $GITHUB_ENV | |
| - name: Build Plugin | |
| uses: ./plugin/.github/actions/build-plugin | |
| with: | |
| workingDirectory: ${{ github.workspace }}/plugin | |
| target: ${{ matrix.arch }} | |
| config: RelWithDebInfo | |
| codesign: "true" | |
| codesignIdent: ${{ env.CODESIGN_IDENT }} | |
| - name: Package Plugin | |
| uses: ./plugin/.github/actions/package-plugin | |
| with: | |
| workingDirectory: ${{ github.workspace }}/plugin | |
| target: ${{ matrix.arch }} | |
| config: RelWithDebInfo | |
| codesign: ${{ github.event_name != 'pull_request' && steps.setup.outputs.haveCodesignIdent == 'true' }} | |
| notarize: ${{ startsWith(github.ref, 'refs/tags/') && github.event_name != 'pull_request' && steps.setup.outputs.haveNotarizationUser == 'true' }} | |
| codesignIdent: ${{ env.CODESIGN_IDENT }} | |
| installerIdent: ${{ env.CODESIGN_IDENT_INSTALLER }} | |
| codesignUser: ${{ secrets.MACOS_NOTARIZATION_USERNAME }} | |
| codesignPass: ${{ secrets.MACOS_NOTARIZATION_PASSWORD }} | |
| - name: Upload Build Artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ env.PLUGIN_NAME }}-macos-${{ matrix.arch }}-${{ steps.setup.outputs.commitHash }} | |
| path: ${{ github.workspace }}/plugin/release/${{ env.PLUGIN_NAME }}-*-macos-${{ matrix.arch }}.pkg | |
| linux-in-tree: | |
| name: "Linux" | |
| runs-on: ${{ matrix.ubuntu }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ubuntu: ["ubuntu-22.04"] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: obsproject/obs-studio | |
| ref: ${{ env.OBS_VERSION }} | |
| submodules: "recursive" | |
| - name: "Checkout plugin" | |
| uses: actions/checkout@v4 | |
| with: | |
| path: plugins/${{ env.PLUGIN_NAME }} | |
| - name: Add plugin to obs cmake | |
| shell: bash | |
| run: echo "add_subdirectory(${{ env.PLUGIN_NAME }})" >> plugins/CMakeLists.txt | |
| - name: Fetch Git Tags | |
| run: git fetch --prune --tags --unshallow | |
| - name: "Install dependencies" | |
| run: CI/linux/01_install_dependencies.sh --disable-pipewire | |
| - name: "Configure" | |
| shell: bash | |
| run: | | |
| mkdir ./build | |
| cmake -S . -B "./build" -G Ninja -DCMAKE_BUILD_TYPE="RelWithDebInfo" -DLINUX_PORTABLE=OFF -DENABLE_AJA=OFF -DENABLE_NEW_MPEGTS_OUTPUT=OFF -DBUILD_CAPTIONS=OFF -DWITH_RTMPS=OFF -DBUILD_BROWSER=OFF -DBUILD_VIRTUALCAM=OFF -DBUILD_VST=OFF -DENABLE_PIPEWIRE=OFF -DENABLE_SCRIPTING=OFF | |
| - name: "Build" | |
| shell: bash | |
| run: | | |
| cmake --build "./build" | |
| - name: "Package" | |
| shell: bash | |
| run: | | |
| FILE_DATE=$(date +%Y-%m-%d) | |
| FILE_NAME=${{ env.PLUGIN_NAME }}-$FILE_DATE-${{ github.sha }}-${{ matrix.ubuntu }}.tar.gz | |
| echo "FILE_NAME=${FILE_NAME}" >> $GITHUB_ENV | |
| mkdir -p ./${{ env.PLUGIN_NAME }}/bin/64bit/ | |
| mv ./build/plugins/${{ env.PLUGIN_NAME }}/${{ env.PLUGIN_NAME }}.so ./${{ env.PLUGIN_NAME }}/bin/64bit/${{ env.PLUGIN_NAME }}.so | |
| mv ./plugins/${{ env.PLUGIN_NAME }}/data ./${{ env.PLUGIN_NAME }}/data | |
| tar -cvzf "${FILE_NAME}" ${{ env.PLUGIN_NAME }} | |
| - name: "Publish" | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: "${{ env.FILE_NAME }}" | |
| path: "*.tar.gz" | |
| windows-build: | |
| name: "Windows Build" | |
| runs-on: [windows-latest] | |
| strategy: | |
| fail-fast: true | |
| matrix: | |
| target: [x64, x86] | |
| include: | |
| - target: x64 | |
| cmake_build: "x64" | |
| deps_ext: "64" | |
| - target: x86 | |
| cmake_build: "Win32" | |
| deps_ext: "32" | |
| env: | |
| QT_VERSION: "6.3.1" | |
| CMAKE_GENERATOR: "Visual Studio 17 2022" | |
| CMAKE_SYSTEM_VERSION: "10.0.18363.657" | |
| WINDOWS_DEPS_VERSION: "2022-08-02" | |
| steps: | |
| - name: Add msbuild to PATH | |
| uses: microsoft/[email protected] | |
| - name: Checkout obs | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: obsproject/obs-studio | |
| ref: ${{ env.OBS_VERSION }} | |
| submodules: "recursive" | |
| - name: Checkout plugin | |
| uses: actions/checkout@v4 | |
| with: | |
| path: plugins/${{ env.PLUGIN_NAME}} | |
| - name: Add plugin to obs cmake | |
| shell: cmd | |
| run: echo add_subdirectory(${{ env.PLUGIN_NAME }}) > plugins/CMakeLists.txt | |
| - name: Fetch Git Tags | |
| run: git fetch --prune --tags --unshallow | |
| - name: "Install prerequisite: QT" | |
| run: | | |
| curl -kLO https://github.com/obsproject/obs-deps/releases/download/${{ env.WINDOWS_DEPS_VERSION }}/windows-deps-qt6-${{ env.WINDOWS_DEPS_VERSION }}-${{ matrix.target }}.zip -f --retry 5 -C - | |
| 7z x windows-deps-qt6-${{ env.WINDOWS_DEPS_VERSION }}-${{ matrix.target }}.zip -o"${{ github.workspace }}/cmbuild/deps" | |
| - name: "Install prerequisite: Pre-built dependencies" | |
| run: | | |
| curl -kLO https://github.com/obsproject/obs-deps/releases/download/${{ env.WINDOWS_DEPS_VERSION }}/windows-deps-${{ env.WINDOWS_DEPS_VERSION }}-${{ matrix.target }}.zip -f --retry 5 -C - | |
| 7z x windows-deps-${{ env.WINDOWS_DEPS_VERSION }}-${{ matrix.target }}.zip -o"${{ github.workspace }}/cmbuild/deps" | |
| - name: Configure | |
| run: | | |
| mkdir ./package | |
| mkdir ./installer | |
| mkdir ./installer/media | |
| mkdir ./build | |
| cmake -S . -B "${{ github.workspace }}/build" -G"${{ env.CMAKE_GENERATOR }}" -DCMAKE_PREFIX_PATH:PATH="${{ github.workspace }}/cmbuild/deps" -A"${{ matrix.cmake_build }}" -DCMAKE_SYSTEM_VERSION="${{ env.CMAKE_SYSTEM_VERSION }}" -DBUILD_BROWSER=false -DBUILD_VST=false -DBUILD_VIRTUALCAM=false -DBUILD_CAPTIONS=false -DCOMPILE_D3D12_HOOK=false -DENABLE_SCRIPTING=false -DDepsPath="${{ github.workspace }}/cmbuild/deps" -DDepsPath${{ matrix.deps_ext }}="${{ github.workspace }}/cmbuild/deps" -DQTDIR="${{ github.workspace }}/cmbuild/deps/qt6" -DCOPIED_DEPENDENCIES=FALSE -DCOPY_DEPENDENCIES=TRUE -DENABLE_PLUGINS=TRUE -DDISABLE_PLUGINS=FALSE -DENABLE_BROWSER=FALSE -DENABLE_WEBSOCKET=FALSE | |
| - name: "Build" | |
| run: msbuild /m /p:Configuration=RelWithDebInfo .\build\obs-studio.sln | |
| - name: Package | |
| if: success() | |
| run: | | |
| $env:FILE_NAME="${{ env.PLUGIN_NAME }}-${{ github.sha }}-windows-${{ matrix.target }}" | |
| echo "FILE_NAME=${env:FILE_NAME}" >> ${env:GITHUB_ENV} | |
| robocopy .\build\rundir\RelWithDebInfo\obs-plugins\${{ matrix.deps_ext }}bit\ .\package\obs-plugins\${{ matrix.deps_ext }}bit ${{ env.PLUGIN_NAME }}.* /E /XF .gitignore | |
| robocopy .\build\rundir\RelWithDebInfo\data\obs-plugins\${{ env.PLUGIN_NAME }}\ .\package\data\obs-plugins\${{ env.PLUGIN_NAME }}\ /E /XF .gitignore | |
| copy .\build\plugins\${{ env.PLUGIN_NAME }}\installer.iss .\installer\installer.iss | |
| robocopy .\plugins\${{ env.PLUGIN_NAME}}\media\ .\installer\media\ /E /XF .gitignore | |
| exit 0 | |
| - name: Publish zip | |
| if: success() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: "${{ env.FILE_NAME }}" | |
| path: package/* | |
| - name: Publish Installer Files | |
| if: success() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: "installer-files" | |
| path: installer/* | |
| windows-package-unsigned: | |
| name: "Windows Package Unsigned" | |
| if: github.event_name == 'pull_request' | |
| runs-on: [windows-latest] | |
| needs: [windows-build] | |
| steps: | |
| - name: Init | |
| if: success() | |
| run: | | |
| mkdir ./package | |
| $env:FILE_DATE=(Get-Date -UFormat "%F") | |
| $env:FILE_NAME="${{ env.PLUGIN_NAME }}-${env:FILE_DATE}-${{ github.sha }}-windows" | |
| echo "FILE_NAME=${env:FILE_NAME}" >> ${env:GITHUB_ENV} | |
| $env:FILE_NAME_X86="${{ env.PLUGIN_NAME }}-${{ github.sha }}-windows-x86" | |
| echo "FILE_NAME_X86=${env:FILE_NAME_X86}" >> ${env:GITHUB_ENV} | |
| $env:FILE_NAME_X64="${{ env.PLUGIN_NAME }}-${{ github.sha }}-windows-x64" | |
| echo "FILE_NAME_X64=${env:FILE_NAME_X64}" >> ${env:GITHUB_ENV} | |
| - name: Setup Secrets | |
| run: | | |
| Write-Output "Setting up signing pin- ::add-mask::${{ secrets.SIGNING_KEY_PIN }}" | |
| Write-Output "Setting up signing org- ${{ secrets.SIGNING_ORG }}" | |
| - name: Retrieve x86 build | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: "${{ env.FILE_NAME_X86 }}" | |
| path: ./package | |
| - name: Retrieve x64 build | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: "${{ env.FILE_NAME_X64 }}" | |
| path: ./package | |
| - name: Retrieve installer files | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: "installer-files" | |
| path: . | |
| - name: Publish zip | |
| if: success() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: "${{ env.FILE_NAME }}" | |
| path: package/* | |
| - name: "Package Installer (Compile)" | |
| run: | | |
| & 'C:\Program Files (x86)\Inno Setup 6\ISCC.exe' /Qp ".\installer.iss" | |
| - name: Publish installer | |
| if: success() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: "${{ env.FILE_NAME }}-installer" | |
| path: package/*.exe | |
| - name: Remove temp artifacts | |
| uses: geekyeggo/delete-artifact@v5 | |
| with: | |
| name: "${{ env.FILE_NAME_X86 }}\n${{ env.FILE_NAME_X64 }}\ninstaller-files" | |
| windows-package-signed: | |
| name: "Windows Package Signed" | |
| if: github.event_name == 'push' | |
| runs-on: [self-hosted] | |
| needs: [windows-build] | |
| steps: | |
| - name: Init | |
| if: success() | |
| run: | | |
| mkdir ./package | |
| $env:FILE_DATE=(Get-Date -UFormat "%F") | |
| $env:FILE_NAME="${{ env.PLUGIN_NAME }}-${env:FILE_DATE}-${{ github.sha }}-windows" | |
| echo "FILE_NAME=${env:FILE_NAME}" >> ${env:GITHUB_ENV} | |
| $env:FILE_NAME_X86="${{ env.PLUGIN_NAME }}-${{ github.sha }}-windows-x86" | |
| echo "FILE_NAME_X86=${env:FILE_NAME_X86}" >> ${env:GITHUB_ENV} | |
| $env:FILE_NAME_X64="${{ env.PLUGIN_NAME }}-${{ github.sha }}-windows-x64" | |
| echo "FILE_NAME_X64=${env:FILE_NAME_X64}" >> ${env:GITHUB_ENV} | |
| - name: Setup Secrets | |
| run: | | |
| Write-Output "Setting up signing pin- ::add-mask::${{ secrets.SIGNING_KEY_PIN }}" | |
| Write-Output "Setting up signing org- ${{ secrets.SIGNING_ORG }}" | |
| - name: Retrieve x86 build | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: "${{ env.FILE_NAME_X86 }}" | |
| path: ./package | |
| - name: Retrieve x64 build | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: "${{ env.FILE_NAME_X64 }}" | |
| path: ./package | |
| - name: Get ScSignTool | |
| run: | | |
| curl "-kL" "https://www.mgtek.com/files/smartcardtools.zip" "-f" "--retry" "5" "-o" "smartcardtools.zip" | |
| 7z x smartcardtools.zip -o"./smartcardtools" | |
| - name: Retrieve installer files | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: "installer-files" | |
| path: . | |
| - name: Code Sign 32 | |
| if: success() | |
| run: | | |
| & '.\smartcardtools\x86\ScSignTool.exe' -pin ${{ secrets.SIGNING_KEY_PIN }} sign /fd sha256 /tr http://ts.ssl.com /td sha256 /n '${{ secrets.SIGNING_ORG }}' .\package\obs-plugins\32bit\${{ env.PLUGIN_NAME }}.dll | |
| - name: Code Sign 64 | |
| if: success() | |
| run: | | |
| & '.\smartcardtools\x86\ScSignTool.exe' -pin ${{ secrets.SIGNING_KEY_PIN }} sign /fd sha256 /tr http://ts.ssl.com /td sha256 /n '${{ secrets.SIGNING_ORG }}' .\package\obs-plugins\64bit\${{ env.PLUGIN_NAME }}.dll | |
| - name: Publish zip | |
| if: success() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: "${{ env.FILE_NAME }}" | |
| path: package/* | |
| - name: "Package Installer (Prereqs)" | |
| run: | | |
| curl "-kL" "https://github.com/Xaymar/msvc-redist-helper/releases/download/0.1/msvc-redist-helper-64.exe" "-f" "--retry" "5" "-o" "msvc-redist-helper.exe" | |
| - name: "Package Installer (Compile)" | |
| run: | | |
| & 'C:\Program Files (x86)\Inno Setup 6\ISCC.exe' /Qp ".\installer.iss" | |
| - name: Code Sign Installer | |
| if: success() | |
| run: | | |
| & '.\smartcardtools\x86\ScSignTool.exe' -pin ${{ secrets.SIGNING_KEY_PIN }} sign /fd sha256 /tr http://ts.ssl.com /td sha256 /n '${{ secrets.SIGNING_ORG }}' .\package\${{ env.PLUGIN_NAME }}-installer.exe | |
| - name: Publish installer | |
| if: success() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: "${{ env.FILE_NAME }}-installer" | |
| path: package/*.exe | |
| - name: Remove temp artifacts | |
| uses: geekyeggo/delete-artifact@v5 | |
| with: | |
| name: "${{ env.FILE_NAME_X86 }}\n${{ env.FILE_NAME_X64 }}\ninstaller-files" | |
| - name: Cleanup | |
| if: ${{ always() }} | |
| run: rm -Recurse -Force ./* |