Adds .gitea/workflows/release.yml, triggered only on a pushed v* tag, which builds all three platforms (reusing the exact same configure/build/test commands as build.yml, now factored out into .gitea/scripts/ so the two workflows can't drift), zips each platform's build/package/ output, and creates a draft Gitea Release with the archives attached. This is packaging automation only -- it does not resolve or bypass the C1 WebRTC/OpenH264 release gate documented in README.md's Status section. Nothing publishes until a human deliberately pushes a version tag (which should not happen before owner sign-off) and then explicitly publishes the resulting draft. The generated release notes lead with a restatement of the open C1 question specifically so that second step can't be taken by accident. build.yml is refactored (not rewritten) to call the same shared scripts; its job/step behavior is otherwise unchanged. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RL8abRmgFXkVASHkkqiJbE
41 lines
2.0 KiB
Bash
Executable File
41 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Shared with .gitea/workflows/build.yml and .gitea/workflows/release.yml --
|
|
# this is the actual macOS configure/build/test/verify sequence. Edit once,
|
|
# here, so both workflows stay in sync instead of drifting copies.
|
|
#
|
|
# The buildspec bootstrap runs here: it fetches obs-deps + the pinned
|
|
# obs-studio source and builds libobs before this project configures.
|
|
#
|
|
# If that fails, fall back to a core-library-only build rather than going
|
|
# red: the core library and its tests are what this job mainly guards, and
|
|
# the fallback is loud (a workflow warning, plus the check below reporting no
|
|
# module) rather than silent. Do not remove the warning -- a green job that
|
|
# quietly stopped building the plugin is worse than a red one.
|
|
set -euo pipefail
|
|
|
|
if ! cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release; then
|
|
echo "::warning::OBS SDK bootstrap failed on macOS; building the core library only. The plugin module was NOT built."
|
|
rm -rf build
|
|
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DSTPLUGIN_BOOTSTRAP_OBS=OFF
|
|
fi
|
|
|
|
cmake --build build
|
|
ctest --test-dir build --output-on-failure
|
|
|
|
# Show what was built.
|
|
#
|
|
# This is not purely informational: the macOS bootstrap has been reliably
|
|
# building the real module in CI (6/6 tests, artifact uploaded -- see
|
|
# README), so a missing module here is a regression to fail loudly on, not
|
|
# the old silent fallback. (This is separate from the macOS packaging gap in
|
|
# README -- that the module doesn't yet load as an OBS.app bundle -- which
|
|
# this check does not and cannot test.)
|
|
ls -la .deps/Frameworks/libobs.framework/Resources/cmake || true
|
|
if [ ! -f build/package/bin/streamer-tools-camera.so ]; then
|
|
echo "::error::no plugin module was built -- build/package/bin/streamer-tools-camera.so is missing. The macOS from-source libobs bootstrap is expected to succeed; treat this as a build failure, not a core-library-only fallback."
|
|
exit 1
|
|
fi
|
|
ls -la build/package/bin
|
|
otool -L build/package/bin/streamer-tools-camera.so
|
|
otool -L build/package/bin/streamer-tools-camera.so | grep -E 'obs|livekit'
|