Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 19 additions & 6 deletions .github/scripts/utils.zsh/setup_linux
Original file line number Diff line number Diff line change
Expand Up @@ -35,14 +35,27 @@ if (( ! (${skips[(Ie)all]} + ${skips[(Ie)deps]}) )) {
sudo apt-get install ${apt_args} gcc-${${target##*-}//_/-}-linux-gnu g++-${${target##*-}//_/-}-linux-gnu
}

sudo add-apt-repository --yes ppa:obsproject/obs-studio
sudo apt update
local dist_version
read -r dist_version <<< "$(source /etc/os-release; print "${VERSION_ID}")"

sudo apt-get install ${apt_args} \
build-essential \
libgles2-mesa-dev \
libsimde-dev \
autoload -Uz is-at-least
if ! is-at-least 26 ${dist_version}; then
sudo add-apt-repository --yes ppa:obsproject/obs-studio
sudo apt update
fi

local -a _obs_packages=(
build-essential
libgles2-mesa-dev
libsimde-dev
obs-studio
)

if is-at-least 26 ${dist_version}; then
_obs_packages+=(libobs-dev)
fi

sudo apt-get install ${apt_args} ${_obs_packages}

local -a _qt_packages=()

Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/build-debian.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,11 @@ on:

jobs:
build:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}

strategy:
matrix:
os: [ubuntu-latest, ubuntu-26.04]

steps:
- uses: actions/checkout@v6
Expand Down Expand Up @@ -52,5 +56,5 @@ jobs:
if: success()
uses: actions/upload-artifact@v7
with:
name: "obs-scene-switcher.deb"
name: "obs-scene-switcher-${{ matrix.os }}.deb"
path: ${{ github.workspace }}/*.deb
71 changes: 71 additions & 0 deletions .github/workflows/build-project.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,77 @@ jobs:
path: ${{ github.workspace }}/release/${{ steps.setup.outputs.pluginName }}-*-x86_64*-dbgsym.ddeb
if-no-files-found: ignore

ubuntu-26-build:
name: Build for Ubuntu 26 🐧
runs-on: ubuntu-26.04
needs: check-event
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v6
with:
submodules: recursive
fetch-depth: 0

- name: Set Up Environment 🔧
id: setup
run: |
: Set Up Environment 🔧
if [[ "${RUNNER_DEBUG}" ]]; then set -x; fi

git_tag="$(git describe --tags)"

read -r product_name product_version <<< \
"$(jq -r '. | {name, version} | join(" ")' buildspec.json)"

echo "pluginName=${product_name}" >> $GITHUB_OUTPUT
echo "pluginVersion=${git_tag}" >> $GITHUB_OUTPUT

- uses: actions/cache@v5
id: ccache-cache
with:
path: ${{ github.workspace }}/.ccache
key: ${{ runner.os }}-ccache-x86_64-${{ needs.check-event.outputs.config }}
restore-keys: |
${{ runner.os }}-ccache-x86_64-

- name: Set up Homebrew 🍺
uses: Homebrew/actions/setup-homebrew@main

- name: Build Plugin 🧱
uses: ./.github/actions/build-plugin
with:
target: x86_64
config: ${{ needs.check-event.outputs.config }}

- name: Run tests
uses: ./.github/actions/run-tests
with:
target: x86_64
config: ${{ needs.check-event.outputs.config }}

- name: Package Plugin 📀
uses: ./.github/actions/package-plugin
with:
package: ${{ fromJSON(needs.check-event.outputs.package) }}
target: x86_64
config: ${{ needs.check-event.outputs.config }}

- name: Upload Artifacts 📡
uses: actions/upload-artifact@v7
with:
name: ${{ steps.setup.outputs.pluginName }}-${{ steps.setup.outputs.pluginVersion }}-ubuntu-26.04-x86_64-${{ needs.check-event.outputs.commitHash }}
path: ${{ github.workspace }}/release/${{ steps.setup.outputs.pluginName }}-*-x86_64*.*

- name: Upload debug symbol artifacts 🪲
uses: actions/upload-artifact@v7
if: ${{ fromJSON(needs.check-event.outputs.package) }}
with:
name: ${{ steps.setup.outputs.pluginName }}-${{ steps.setup.outputs.pluginVersion }}-ubuntu-26.04-x86_64-${{ needs.check-event.outputs.commitHash }}-dbgsym
path: ${{ github.workspace }}/release/${{ steps.setup.outputs.pluginName }}-*-x86_64*-dbgsym.ddeb
if-no-files-found: ignore

windows-build:
name: Build for Windows 🪟
runs-on: windows-2022
Expand Down