mirror of
https://github.com/Xaymar/obs-StreamFX
synced 2024-11-11 06:15:05 +00:00
f907fc80b0
Implements a manual and automatic update checker with support for both release and testing update channels, allowing users to stay as up to date as possible. It is fully compliant with privacy regulations around the world, as it stays completely silent and inactive until the user gives the Ok to connect to GitHub for the latest releases.
157 lines
No EOL
5.4 KiB
YAML
157 lines
No EOL
5.4 KiB
YAML
name: Build
|
|
|
|
on:
|
|
push:
|
|
branches-ignore:
|
|
- 'l10n_master'
|
|
pull_request:
|
|
branches:
|
|
- '*'
|
|
|
|
jobs:
|
|
windows:
|
|
name: "Windows 64-bit"
|
|
strategy:
|
|
matrix:
|
|
runner: [ windows-2019 ]
|
|
include:
|
|
- runner: windows-2019
|
|
id: windows2019
|
|
windows_sdk: "10.0.18362.0"
|
|
cmake_generator: "Visual Studio 16 2019"
|
|
cmake_generator_platform: "x64"
|
|
runs-on: ${{ matrix.runner }}
|
|
env:
|
|
CMAKE_GENERATOR: ${{ matrix.cmake_generator }}
|
|
CMAKE_GENERATOR_PLATFORM: ${{ matrix.cmake_generator_platform }}
|
|
CMAKE_GENERATOR_TOOLSET: "host=x64"
|
|
CMAKE_SYSTEM_VERSION: ${{ matrix.windows_sdk }}
|
|
steps:
|
|
- name: "Clone Repository"
|
|
uses: actions/checkout@v1
|
|
- name: "Clone Submodules"
|
|
shell: bash
|
|
run: git submodule update --init --recursive
|
|
- name: "Cache: Prerequisites"
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: |
|
|
build/temp/qt-download/qt-download-prefix/src/qt.7z
|
|
build/temp/obsdeps-download/obsdeps-download-prefix/src/obsdeps.7z
|
|
build/temp/libobs-download/libobs-download-prefix/src/libobs.7z
|
|
key: ${{ matrix.id }}
|
|
- name: "Configure Project"
|
|
shell: bash
|
|
run: |
|
|
cmake -H. -B"build/temp" -DCMAKE_INSTALL_PREFIX="build/distrib" -DCMAKE_PACKAGE_NAME="streamfx-${{ matrix.id }}" -DCMAKE_PACKAGE_PREFIX="build/package" -DOBS_DOWNLOAD=ON
|
|
- name: "Build Project"
|
|
shell: bash
|
|
run: |
|
|
cmake --build "build/temp" --config RelWithDebInfo --target INSTALL
|
|
- name: "Package Project"
|
|
shell: bash
|
|
run: |
|
|
mkdir build/package
|
|
cmake --build "build/temp" --config RelWithDebInfo --target PACKAGE_7Z
|
|
cmake --build "build/temp" --config RelWithDebInfo --target PACKAGE_ZIP
|
|
- name: "Package Installer (Prereqs)"
|
|
run: |
|
|
curl "-kL" "https://cdn.xaymar.com/ci/innosetup-6.0.3.exe" "-f" "--retry" "5" "-o" "inno.exe"
|
|
.\inno.exe /VERYSILENT /SP- /SUPPRESSMSGBOXES /NORESTART
|
|
- name: "Package Installer (Compile)"
|
|
run: |
|
|
& 'C:\Program Files (x86)\Inno Setup 6\ISCC.exe' /Qp ".\build\temp\installer.iss"
|
|
- name: "Upload Artifacts"
|
|
uses: actions/upload-artifact@v1
|
|
with:
|
|
name: ${{ matrix.id }}
|
|
path: build/package
|
|
ubuntu:
|
|
name: "Ubuntu 64-bit"
|
|
strategy:
|
|
matrix:
|
|
ubuntu: [ bionic, focal ]
|
|
compiler: [ gcc, clang ]
|
|
include:
|
|
- ubuntu: bionic
|
|
compiler: gcc
|
|
compiler-cxx: g++
|
|
runner: ubuntu-18.04
|
|
packages: gcc-8 g++8
|
|
extra_command: sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8
|
|
id: ubuntu-18.04
|
|
- ubuntu: bionic
|
|
compiler: clang
|
|
compiler-cxx: clang
|
|
compiler-version: 8
|
|
runner: ubuntu-18.04
|
|
packages: clang-8
|
|
extra_command: ""
|
|
id: ubuntu-18.04-clang
|
|
- ubuntu: focal
|
|
compiler: gcc
|
|
compiler-cxx: g++
|
|
runner: ubuntu-20.04
|
|
packages: gcc-9 g++9
|
|
extra_command: sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 800 --slave /usr/bin/g++ g++ /usr/bin/g++-9
|
|
id: ubuntu-20.04
|
|
- ubuntu: focal
|
|
compiler: clang
|
|
compiler-cxx: clang
|
|
compiler-version: 9
|
|
runner: ubuntu-20.04
|
|
packages: clang-9
|
|
extra_command: ""
|
|
id: ubuntu-20.04-clang
|
|
runs-on: ${{ matrix.runner }}
|
|
env:
|
|
CMAKE_GENERATOR: "Ninja"
|
|
CC: ${{ matrix.compiler }}
|
|
CXX: ${{ matrix.compiler-cxx }}
|
|
steps:
|
|
- name: "Clone Repository"
|
|
uses: actions/checkout@v1
|
|
- name: "Prerequisites: Submodules"
|
|
shell: bash
|
|
run: git submodule update --init --recursive
|
|
- name: "Prerequisites: Apt-Get"
|
|
shell: bash
|
|
run: |
|
|
sudo apt-get -qq update
|
|
sudo apt-get purge libjpeg9-dev:amd64 libjpeg8-dev:amd64 libjpeg-turbo8-dev:amd64
|
|
sudo apt-get install \
|
|
build-essential \
|
|
cmake \
|
|
ninja-build \
|
|
git \
|
|
qt5-default libqwt-qt5-dev libqt5svg5-dev \
|
|
libavcodec-dev libavdevice-dev libavfilter-dev libavformat-dev libavutil-dev libswresample-dev libswscale-dev \
|
|
libcurl4-openssl-dev \
|
|
${{ matrix.packages }} \
|
|
checkinstall pkg-config
|
|
${{ matrix.extra_command }}
|
|
- name: "Cache: Prerequisites"
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: |
|
|
build/temp/libobs-download/libobs-download-prefix/src/libobs.7z
|
|
key: ${{ matrix.id }}
|
|
- name: "Configure Project"
|
|
shell: bash
|
|
run: |
|
|
cmake -H. -B"build/temp" -DCMAKE_INSTALL_PREFIX="build/distrib" -DCMAKE_PACKAGE_NAME="streamfx-${{ matrix.id }}" -DCMAKE_PACKAGE_PREFIX="build/package" -DOBS_DOWNLOAD=ON
|
|
- name: "Build Project"
|
|
shell: bash
|
|
run: |
|
|
cmake --build "build/temp" --config RelWithDebInfo --target install
|
|
- name: "Package Project"
|
|
shell: bash
|
|
run: |
|
|
mkdir build/package
|
|
cmake --build "build/temp" --config RelWithDebInfo --target PACKAGE_7Z
|
|
cmake --build "build/temp" --config RelWithDebInfo --target PACKAGE_ZIP
|
|
- name: "Upload Artifacts"
|
|
uses: actions/upload-artifact@v1
|
|
with:
|
|
name: ${{ matrix.id }}
|
|
path: build/package |