* Add provisioning profile support for macOS builds
* Fix internal variable names in macOS packaging script
* Add fallback git reference for validator actions
* Add required repository environment to documention deployment jobs
* Pass GitHub pull request number to GitHub CLI explicitly
* Use shortened commit hash for Steam nightly versions
* Ensure that concurrency check for tagged push uses a boolean value
* Update disk image creation function to retry ejection on CI
* Fix repository checkout in Flatpak publish action
* Fix output paths and filenames of generated appcast XML files
* Limit notice about notarization password use to non-CI usage
* Remove architecture-specific suffix from appcast artifact name
Once again GitHub Action runners have a minor Python 3 version
preinstalled that we want to upgrade, which will fail because that
versions does not seem to be Homebrew-based.
Enforcing an upgrade will fix the issue as Homebrew can overwrite the
files.
steamcmd seems to have a quirk where it cannot find a file in the
current working directory on macOS, but requires the absolute path
to the file instead - using the `:a` Zsh modifier yields the absolute
path of a valid filename in the current directory scope.
GitHub's CLI utility is not capable of downloading artifacts generated
by the workflow job it is being run in itself. Thus the official
repository action is needed.
Linux runners exhibit connectivity issues with some services that are
not present with macOS runners. Switching to macOS thus reduces chances
for false positives.
Notable changes:
* deps.qt: Remove Qt 5 builds
* deps.qt: Update Qt 6 build scripts
* deps.ffmpeg: Update dependencies for OBS CMake 3.0 upgrade
* deps.windows: Update dependencies for OBS CMake 3.0 upgrade
No dependency versions have changed.
This update is to unblock work on the Windows "CMake 3.0" upgrade and
dropping Qt 5 support.
Current caching steps do not use a coarse restore key to enable cache
restoration from a possible master cache. This is a forward-port of a
future CI workflow update that uses the same cache key logic.
Also fixes missing generator token for cache keys generated by master
branch.
Sadly, v6 had an issue where it pushed the build to the `master`
branch regardless of the branch specified in the action config.
This was fixed in v6.1, so let's use that, and publish further
releases on the right branch.
Notable changes:
* deps.qt: Add missing obs-deps version file for Qt packages
* CI: Add detection for single-arch static libraries
This is mostly to fix plugin builds. No dependency versions have
changed.
Notable changes:
* deps.ffmpeg: Update FFmpeg to a6dc92968a
* deps.qt: Backport macOS disabled combobox items fix
The FFmpeg update is to fix an issue with DTS when using b-frames with
FFmpeg NVENC. In particular, we wanted this commmit:
* a6dc92968a
Notable changes:
* deps.ffmpeg: Update FFmpeg to 3980415627
This update is to fix a crash when using FFmpeg NVENC. In particular, we
wanted these commmits:
* 0981053c29
* 916bdc0f19
github.event.pull_request.labels contains the labels at the time the
pull_request event was triggered. Modifications made during the workflow
(or after the PR was submitted and before a CI re-run) won't show up
there. To reliably check the labels on CI re-runs, switch back to
checking the API.
Pushes to master will use faster Ninja builds on macOS, which cannot
generate macOS app bundles anymore. Thus packaging will only work with
PR pushes (and the "Seeking Testers" label set) or upon pushing a
release tag to the master branch.
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
This option allows to build the Flatpak without generating a
bundle (artifact).
This allows to remove the requirement of the "Seeking Testers" label to
just test build the Flatpak.
Notable changes:
* Add Jansson to Windows deps
* Update zlib to 1.2.13
* Update libpng to 1.6.38
* Update opus to bce1f39235
* Update SVT-AV1 to 1.3.0
* Update aom to 3.5.0
* Update x264 to r3101
* Update libsrt to 1.5.1
* Update AMF to 1.4.26
* Update FFmpeg to 5.1.2
* Update LuaJIT to 2.1 7a0cf5fd4c
* Windows: Update cmocka to cd95ee9f77
* Windows: Update curl to 7.86.0
* Qt: Update Qt5 to Qt 5.15.7 for Windows
* Qt: Update Qt6 to Qt 6.4.1 for Windows
* Qt: Update Qt5 to Qt 5.15.7 for macOS
* Qt: Update Qt6 to Qt 6.4.1 for macOS
The 6.4 runtime rely on Freedesktop 22.08 which provide a more recent
version of Mesa and PipeWire.
The switch to 22.08 also requires to migrate paths of VST 2 plugins.
Fixes#7146
Normally, Qt and CEF each run their own version of GTK, often causing
conflicts. This commit introduces a build of CEF where GTK has been
disabled using `use_gtk=false` as we do not require the Chrome runtime.
This is an experiment and may end up being the safest long-term solution.
Note: This does introduce potential quirks/incompatibilities, such as
browser sources no longer being able to display alert() dialogs, and
potentially file browser dialogs not working from CEF.
This is better than the alternative. If necessary, such dialogs can be
reimplemented using Qt at a later date, and would likely provide a more
consistent user experience.
On CI, do not fetch tags in packaging scripts. For some reason, the
checkout action seems to locally update any new git tags on the runner:
t [tag update] (commit-hash) -> tag-name
This causes future calls to fetch git tags to fail on CI with:
! [rejected] tag-name -> tag-name (would clobber existing tag)
To avoid this, we can simply not fetch tags a second time on CI.
Additionally, fix the Windows Installer job.
Notable changes:
* Use VS2022
* Update zlib to 1.2.12
* Update opus to ab04fbb1b7
* Update libvpx to 1.12.0
* Update SVT-AV1 to 1.1.0
* Update aom to 3.4.0
* Update x264 to r3095
* Update mbedTLS to 3.2.1
* Update libsrt to 1.5.0
* Update librist to 809390b3b7
* Update AMF to 1.4.24
* Update FFmpeg to 5.0.1
* Update FreeType to 2.12.1
* Update LuaJIT to 2.1 3065c910ad
* Update SpeexDSP to 1.2.1
* macOS: Update Jansson to 2.14
* Windows: Update libogg to 1.3.5
* Windows: Update libvorbis to 84c023699c
* Windows: Update cmocka to bbf5ff7dd5
* Windows: Update curl to 7.84.0
* Windows: Update VulkanSDK to 1.3.216.0
* Windows: Update nasm to 2.15.05
* Windows: Update Python to 3.8.10
* Qt: Update Qt5 to Qt 5.15.5 for Windows
* Qt: Update Qt6 to Qt 6.3.1 for Windows
* Qt: Update Qt5 to Qt 5.15.5 for macOS
* Qt: Update Qt6 to Qt 6.3.1 on macOS
* Qt: Backport Windows native scale factor fix
Switch to Visual Studio 2022 and clang-format 13.
The Ubuntu 22.04 image currently has clang-format 12.0.1, 13.0.1, and
14.0.0. VS2022 17.2 ships clang-format 13.0.1, so let's use that for now
until VS2022 17.3 is available with clang-format 14.
This commit also makes the necessary changes to allow the clang-format
check to pass.
This commit also updates the obs-browser submodules with the necessary
changes.
Notable changes:
* Windows: Add Qt 5 and 6 builds
* Windows: Remove nasm native build
* Windows: Update srt from 1.4.2 to 1.4.4
* Windows: Update SWIG from 3.0.12 to 4.1.0-git
* macOS: Update libvpx from 1.10.0 to 1.11.0
* macOS: Update srt from 1.4.1 to 1.4.4
* macOS: Update SWIG from 3.0.12 to 4.1.0-git
* macOS: Update x264 from r3059 to r3060
Add a job where the tag is checked if it is valid, it also checks if the
release should be published to Flathub beta and/or Flathub by
dynamically setting the matrix.
Due to changes on obs-deps, per-arch Qt builds do not contain universal
binaries anymore. To allow CI to cross-compile on x86_64 runners,
the universal release is used, which will run on both architectures.
Hardcode short hash length to 9 characters in CI and packaging scripts.
It is not guaranteed that short hashes are the same length across
different platforms or different versions of git. This caused problems
with upload/download action names, as the hashes sometimes didn't match.
Fix the download artifact name in the Windows installer job and the
macOS notarization job to prevent them from failing due to a name
mismatch.
Current build scripts rely on comparing a architecture string provided
by the OS which will be localised in certain languages.
This change uses a boolean 64-bit flag to use script-defined identifiers
to avoid this issue.
Use the entries in the matrix.ubuntu property to differentiate the
Linux CI artifacts. This allows us to have separate artifacts for each
job configuration created by the matrix.
Update all of our GitHub Actions to the latest versions. Notably, the
update to actions/cache gives support for the 10GB GitHub Actions cache,
and the updates for the other first-party actions are required for
future M1 runner support.
Commit 7a5bffc0a6 applied a fix to the
macOS build script. This applies the same fix to the GitHub Actions
workflow that is actually currently used on CI.
Prior version was linked against libxcb, because it was present on
Github Actions macOS runners. Consequently builds on CI will succeed
as the library is always present, will fail on user's machines though.
This aligns CI Windows builds with recently shipped deps to support AV1
and RIST as well as providing other updates.
* Update FFmpeg from 4.2.4 to 4.4.1
* Update nv-codec-headers from 9.0.18.2 to 11.1.5.0
* Add libaom and SVT-AV1 support (64-bit only)
* Add RIST support
* Enable multithreading for libvpx obs-deps builds
We currently publish the same build from the same branch
to Flathub. However, soon we'll need to build the Flatpak
manifest in different branches, and publish them in different
repositories.
Prepare for that by splitting the publish step in two: one
for Flathub, and another for Flathub Beta. Do that using
a matrix strategy.
Skip building and publishing stable releases when it's a beta
or RC release by setting an output variable in the first job.
We'll soon be moving to branching before releases, which
is a case that the current Flatpak worflow did not account
for.
Adapt it to also run on release/** branches.