obs-StreamFX/.github/workflows/main.yml
Michael Fabian 'Xaymar' Dirks 188e58bbda ci: Remove automatic build support for Ubuntu 18.04
The majority of users should have already switched or upgraded to Ubuntu 20.04 at this point, so there is no point in building further Ubuntu 18.04 versions. This saves us some CI slots, and also reduces the number of target systems to actually support.
2023-03-28 13:11:10 +02:00

168 lines
6.2 KiB
YAML

name: Build
on:
push:
tags:
- '*'
branches-ignore:
- 'l10n_master'
pull_request:
branches:
- '*'
env:
DOWNLOAD_OBS_VERSION: "26.0.2-ci"
jobs:
windows:
name: "Windows 64-bit"
strategy:
fail-fast: true
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:
DOWNLOAD_OBS_HASH_64: "SHA512=571B4196DF5CFBD3A8E113C97C7890000C490DDF1C6747529DE0F06063F928E7488095775919017104DE7A693CCF51A7A82BD04BCE62D6B3F0ED1F74A5F32B32"
DOWNLOAD_OBSDEPS_VERSION: "26.0.0"
DOWNLOAD_OBSDEPS_HASH: "SHA512=2D47E7579DE3FBD88C52BB62C2CA4D649BD958FBAE8E5B01EE263D7583B4D8EEEA8CE13C543BEF110FAC9142891C031973A1BC20AC6EED596E6AB97CCC669D16"
DOWNLOAD_QT_VERSION: "5.10.1"
DOWNLOAD_QT_HASH: "SHA512=848B9AC00B06FCA1F1A85BD4EFEA4138D278E8EC96823C5C36CC988DDE5D27E2F91300B02F2F0E71F075CCB0D791D3C888CDA6A5048DDFE6F946A8697DFEF1E9"
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: OBS"
uses: actions/cache@v2
with:
path: "build/temp/libobs-download/libobs-download-prefix/src/libobs.7z"
key: ${{ matrix.id }}-${{ env.DOWNLOAD_OBS_VERSION }}-${{ env.DOWNLOAD_OBS_HASH_64 }}
- name: "Cache: OBS Dependencies"
uses: actions/cache@v2
with:
path: "build/temp/obsdeps-download/obsdeps-download-prefix/src/obsdeps.7z"
key: ${{ matrix.id }}-${{ env.DOWNLOAD_OBSDEPS_VERSION }}-${{ env.DOWNLOAD_OBSDEPS_HASH }}
- name: "Cache: Qt"
uses: actions/cache@v2
with:
path: "build/temp/qt-download/qt-download-prefix/src/qt.7z"
key: ${{ matrix.id }}-${{ env.DOWNLOAD_QT_VERSION }}-${{ env.DOWNLOAD_QT_HASH }}
- 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"
- 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:
fail-fast: true
matrix:
ubuntu: [ focal ]
compiler: [ gcc, clang ]
include:
- 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 clang-format-9 clang-tidy-9
extra_command: ""
id: ubuntu-20.04-clang
runs-on: ${{ matrix.runner }}
env:
DOWNLOAD_OBS_HASH_64: "SHA512=62EAD42890CEF953806F5780ED37304D6BD110F65D3ED83A88ADA462B0A0E46E9DEE477A76D456C444102EBA4F9F9A9EAAA299DCFDB2872233E2B35F775CCD0D"
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: OBS"
uses: actions/cache@v2
with:
path: "build/temp/libobs-download/libobs-download-prefix/src/libobs.7z"
key: ${{ matrix.id }}-${{ env.DOWNLOAD_OBS_VERSION }}-${{ env.DOWNLOAD_OBS_HASH_64 }}
- 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" \
-DENABLE_FILTER_NVIDIA_FACE_TRACKING=FALSE
- 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