Browse Source

CI: Update default CI from Azure to Github Actions

PatTheMav 3 years ago
parent
commit
652a4b77b5
4 changed files with 465 additions and 166 deletions
  1. 394 0
      .github/workflows/main.yml
  2. 11 0
      CI/utility/check-format.sh
  3. 60 0
      CI/utility/formatcode.sh
  4. 0 166
      azure-pipelines.yml

+ 394 - 0
.github/workflows/main.yml

@@ -0,0 +1,394 @@
+name: 'BUILD'
+
+on:
+  push:
+    paths-ignore: ['**.md']
+    branches: [master]
+    tags: ['*']
+  pull_request:
+    paths-ignore: ['**.md']
+    branches: [master]
+
+env:
+  OBS_VERSION: '26.1.2'
+  PRODUCT_NAME: 'obs-plugin'
+  QT_VERSION_MAC: '5.15.2'
+  QT_HASH_MAC: 'a09690095d16b3f476ae6e0f5bf3154effcd6571738c1c40f8abbb83676d2afb'
+  QT_VERSION_WIN: '5.15.2'
+  DEPS_VERSION_MAC: '2021-08-17'
+  DEPS_HASH_MAC: 'fc6b356572c4703d56f5b2deb98e46cddffb29a0d36c988702dd76329efe7072'
+  DEPS_VERSION_WIN: '2019'
+
+jobs:
+  clang_check:
+    name: '01 - Code Format Check'
+    runs-on: [ubuntu-latest]
+    steps:
+      - name: 'Checkout'
+        uses: actions/checkout@v2.3.3
+        with:
+          submodules: 'recursive'
+
+      - name: 'Install clang-format'
+        run: sudo apt-get install -y clang-format-12
+
+      - name: 'Run clang-format'
+        run: |
+          ./CI/formatcode.sh
+          ./CI/check-format.sh
+
+  macos_build:
+    name: '02 - macOS (Latest)'
+    runs-on: [macos-11]
+    strategy:
+      matrix:
+        arch: ['x86_64']
+    if: always()
+    needs: [clang_check]
+    env:
+      MACOSX_DEPLOYMENT_TARGET: '10.13'
+      BLOCKED_FORMULAS: 'speexdsp curl php'
+      CODESIGN_IDENT: '-'
+      CODESIGN_IDENT_INSTALLER: '-'
+      HAVE_CODESIGN_IDENTITY: ${{ secrets.MACOS_SIGNING_APPLICATION_IDENTITY != '' && secrets.MACOS_SIGNING_INSTALLER_IDENTITY && secrets.MACOS_SIGNING_CERT != '' }}
+    defaults:
+      run:
+        shell: bash
+    steps:
+      - name: 'Checkout'
+        uses: actions/checkout@v2.3.3
+        with:
+          path: 'plugin'
+          submodules: 'recursive'
+
+      - name: 'Checkout'
+        uses: actions/checkout@v2.3.3
+        with:
+          repository: 'obsproject/obs-studio'
+          path: 'obs-studio'
+          ref: '${{ env.OBS_VERSION }}'
+          fetch-depth: 0
+          submodules: 'recursive'
+
+      - name: 'Check for Github Labels'
+        if: github.event_name == 'pull_request'
+        run: |
+          if test -n "$(curl -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" -s "${{ github.event.pull_request.url }}" | jq -e '.labels[] | select(.name == "Seeking Testers")')"; then
+            echo "SEEKING_TESTERS=1" >> $GITHUB_ENV
+          else
+            echo "SEEKING_TESTERS=0" >> $GITHUB_ENV
+          fi
+
+          echo "CACHE_DATE=$(date +"%Y-%m-%d")" >> $GITHUB_ENV
+
+      - name: 'Restore ccache from cache'
+        id: ccache-cache
+        uses: actions/cache@v2.1.2
+        env:
+          CACHE_NAME: 'ccache-cache'
+        with:
+          path: ${{ github.workspace }}/.ccache
+          key: ${{ runner.os }}-pr-${{ env.CACHE_NAME }}-${{ matrix.arch }}-${{ env.CACHE_DATE }}
+
+      - name: 'Setup build environment'
+        run: |
+          REMOVE_FORMULAS=""
+          for FORMULA in ${{ env.BLOCKED_FORMULAS }}; do
+            if [ -d "/usr/local/opt/${FORMULA}" ]; then
+              REMOVE_FORMULAS="${REMOVE_FORMULAS}${FORMULA} "
+            fi
+          done
+
+          if [ -n "${REMOVE_FORMULAS}" ]; then
+            brew uninstall ${REMOVE_FORMULAS}
+          fi
+
+      - name: 'Install dependencies'
+        run: CI/macos/01_install_dependencies.sh --architecture "${{ matrix.arch }}"
+
+      - name: 'Restore libobs and obs-frontend-api from cache'
+        id: libobs-cache
+        uses: actions/cache@v2.1.2
+        env:
+          CACHE_NAME: 'libobs-cache'
+        with:
+          path: |
+            ${{ github.workspace }}/.cmake/packages/libobs
+            ${{ github.workspace }}/.cmake/packages/obs-frontend-api
+            ${{ github.workspace }}/obs-studio/build/libobs
+            ${{ github.workspace }}/obs-studio/build/UI/obs-frontend-api
+          key: ${{ runner.os }}-pr-${{ env.CACHE_NAME }}-${{ env.OBS_VERSION }}
+
+      - name: 'Build libobs and obs-frontend-api'
+        if: steps.libobs-cache.outputs.cache-hit != 'true'
+        working-directory: 'plugin'
+        run: CI/macos/02_build_obs-libs.sh --architecture "${{ matrix.arch }}"
+
+      - name: 'Install Apple Developer Certificate'
+        if: startsWith(github.ref, 'refs/tags/') && github.event_name != 'pull_request' && env.HAVE_CODESIGN_IDENTITY == 'true'
+        uses: apple-actions/import-codesign-certs@253ddeeac23f2bdad1646faac5c8c2832e800071
+        with:
+          p12-file-base64: ${{ secrets.MACOS_SIGNING_CERT }}
+          p12-password: ${{ secrets.MACOS_SIGNING_CERT_PASSWORD }}
+
+      - name: 'Set Signing Identity'
+        if: startsWith(github.ref, 'refs/tags/') && github.event_name != 'pull_request' && env.HAVE_CODESIGN_IDENTITY == 'true'
+        run: |
+          echo "CODESIGN_IDENT=${{ secrets.MACOS_SIGNING_APPLICATION_IDENTITY }}" >> $GITHUB_ENV
+          echo "CODESIGN_IDENT_INSTALLER=${{ secrets.MACOS_SIGNING_INSTALLER_IDENTITY }}" >> $GITHUB_ENV
+
+      - name: 'Build plugin'
+        working-directory: 'plugin'
+        run: CI/macos/03_build_plugin.sh --codesign --architecture "${{ matrix.arch }}"
+
+      - name: 'Create build artifact'
+        if: success() && (github.event_name != 'pull_request' || env.SEEKING_TESTERS == '1')
+        working-directory: 'plugin'
+        run: CI/macos/04_package_plugin.sh --codesign --architecture "${{ matrix.arch }}"
+
+      - name: 'Upload build Artifact'
+        if: success() && (github.event_name != 'pull_request' || env.SEEKING_TESTERS == '1')
+        uses: actions/upload-artifact@v2
+        with:
+          name: '${{ env.PRODUCT_NAME }}-macos-${{ matrix.arch }}'
+          path: '${{ github.workspace }}/plugin/*-macOS.pkg'
+
+  linux_build:
+    name: '02 - Linux (Ubuntu, 20.04)'
+    runs-on: ${{ matrix.ubuntu }}
+    strategy:
+      matrix:
+        ubuntu: ['ubuntu-20.04', 'ubuntu-18.04']
+    if: always()
+    needs: [clang_check]
+    defaults:
+      run:
+        shell: bash
+    steps:
+      - name: 'Checkout'
+        uses: actions/checkout@v2.3.3
+        with:
+          path: 'plugin'
+          submodules: 'recursive'
+
+      - name: 'Checkout'
+        uses: actions/checkout@v2.3.3
+        with:
+          repository: 'obsproject/obs-studio'
+          path: 'obs-studio'
+          ref: '${{ env.OBS_VERSION }}'
+          fetch-depth: 0
+          submodules: 'recursive'
+
+      - name: 'Check for Github Labels'
+        if: github.event_name == 'pull_request'
+        run: |
+          if test -n "$(curl -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" -s "${{ github.event.pull_request.url }}" | jq -e '.labels[] | select(.name == "Seeking Testers")')"; then
+            echo "SEEKING_TESTERS=1" >> $GITHUB_ENV
+          else
+            echo "SEEKING_TESTERS=0" >> $GITHUB_ENV
+          fi
+
+          echo "CACHE_DATE=$(date +"%Y-%m-%d")" >> $GITHUB_ENV
+
+      - name: 'Restore ccache from cache'
+        id: ccache-cache
+        uses: actions/cache@v2.1.2
+        env:
+          CACHE_NAME: 'ccache-cache'
+        with:
+          path: ${{ github.workspace }}/.ccache
+          key: ${{ runner.os }}-pr-${{ env.CACHE_NAME }}-${{ matrix.ubuntu }}-${{ env.CACHE_DATE }}
+
+      - name: "Install Dependencies"
+        working-directory: 'plugin'
+        run: CI/linux/01_install_dependencies.sh --disable-pipewire
+
+      - name: 'Restore libobs and obs-frontend-api from cache'
+        id: libobs-cache
+        uses: actions/cache@v2.1.2
+        env:
+          CACHE_NAME: 'libobs-cache'
+        with:
+          path: |
+            ${{ github.workspace }}/.cmake/packages/libobs
+            ${{ github.workspace }}/.cmake/packages/obs-frontend-api
+            ${{ github.workspace }}/obs-studio/CI_BUILD/libobs
+            ${{ github.workspace }}/obs-studio/CI_BUILD/UI/obs-frontend-api
+          key: ${{ runner.os }}-pr-${{ env.CACHE_NAME }}-${{ env.OBS_VERSION }}
+
+      - name: 'Build libobs and obs-frontend-api'
+        if: steps.libobs-cache.outputs.cache-hit != 'true'
+        working-directory: 'plugin'
+        run: CI/linux/02_build_obs-libs.sh --disable-pipewire
+
+      - name: 'Build plugin'
+        working-directory: 'plugin'
+        run: CI/linux/03_build_plugin.sh
+
+      - name: 'Create build artifact'
+        working-directory: 'plugin'
+        if: success() && (github.event_name != 'pull_request' || env.SEEKING_TESTERS == '1')
+        run: CI/linux/04_package_plugin.sh
+
+      - name: 'Upload build Artifact'
+        if: success() && (github.event_name != 'pull_request' || env.SEEKING_TESTERS == '1')
+        uses: actions/upload-artifact@v2
+        with:
+          name: '${{ env.PRODUCT_NAME }}-linux-${{ matrix.arch }}'
+          path: '${{ github.workspace }}/plugin/*.deb'
+
+  windows_build:
+    name: '02 - Windows (Latest)'
+    runs-on: [windows-latest]
+    needs: [clang_check]
+    if: always()
+    strategy:
+      matrix:
+        arch: [64, 32]
+    env:
+      CMAKE_GENERATOR: "Visual Studio 16 2019"
+      CMAKE_SYSTEM_VERSION: "10.0.18363.657"
+    steps:
+      - name: 'Add msbuild to PATH'
+        uses: microsoft/setup-msbuild@v1.0.2
+
+      - name: 'Checkout'
+        uses: actions/checkout@v2.3.3
+        with:
+          path: 'plugin'
+          submodules: 'recursive'
+
+      - name: 'Checkout'
+        uses: actions/checkout@v2.3.3
+        with:
+          repository: 'obsproject/obs-studio'
+          path: 'obs-studio'
+          ref: '${{ env.OBS_VERSION }}'
+          fetch-depth: 0
+          submodules: 'recursive'
+
+      - name: 'Check for Github Labels'
+        if: github.event_name == 'pull_request'
+        run: |
+          $LabelFound = try { (Invoke-RestMethod -Authentication 'Bearer' -Token (ConvertTo-SecureString '${{ secrets.GITHUB_TOKEN }}' -AsPlainText) -Uri "${{ github.event.pull_request.url }}" -UseBasicParsing).labels.name.contains("Seeking Testers") } catch { $false }
+          Write-Output "SEEKING_TESTERS=$(if( $LabelFound -eq $true ) { 1 } else { 0 })" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
+
+      - name: "Install Dependencies"
+        working-directory: 'plugin'
+        run: CI/windows/01_install_dependencies.ps1 -BuildArch ${{ matrix.arch }}-bit -NoChoco
+
+      - name: 'Restore libobs and obs-frontend-api from cache'
+        id: libobs-cache
+        uses: actions/cache@v2.1.2
+        env:
+          CACHE_NAME: 'libobs-cache'
+        with:
+          path: |
+            ${{ github.workspace }}/obs-studio/build/libobs
+            ${{ github.workspace }}/obs-studio/build/UI/obs-frontend-api
+            ${{ github.workspace }}/obs-studio/build/deps/w32-pthreads
+          key: ${{ runner.os }}-pr-${{ env.CACHE_NAME }}-${{ env.OBS_VERSION }}
+
+      - name: 'Build libobs and obs-frontend-api'
+        working-directory: 'obs-studio'
+        run: CI/windows/02_build_obs_libs.ps1 -BuildArch "${{ matrix.arch }}-bit"
+
+      - name: 'Build plugin'
+        working-directory: 'plugin'
+        run: CI/windows/03_build_plugin.ps1 -BuildArch "${{ matrix.arch }}-bit"
+
+      - name: 'Create build artifact'
+        if: success() && (github.event_name != 'pull_request' || env.SEEKING_TESTERS == '1')
+        run: CI/windows/04_package_plugin.ps1 -BuildArch "${{ matrix.arch }}-bit"
+
+      - name: 'Upload build Artifact'
+        if: success() && (github.event_name != 'pull_request' || env.SEEKING_TESTERS == '1')
+        uses: actions/upload-artifact@v2
+        with:
+          name: '${{ env.PRODUCT_NAME }}-windows-${{ matrix.arch }}'
+          path: '${{ github.workspace }}/plugin/*-Win${{ matrix.arch }}.zip'
+
+  windows_package:
+    name: '03 - Windows Installer'
+    runs-on: [ubuntu-latest]
+    needs: [windows_build]
+    if: startsWith(github.ref, 'refs/tags/') && github.event_name != 'pull_request'
+    steps:
+      - name: 'Checkout'
+        uses: actions/checkout@v2.3.3
+        with:
+          submodules: 'recursive'
+
+      - name: 'Download 64-bit artifact'
+        uses: actions/download-artifact@v2
+        with:
+          name: '${{ env.PRODUCT_NAME }}-windows-64'
+          path: ${{ github.workspace }}
+
+      - name: 'Download 32-bit artifact'
+        uses: actions/download-artifact@v2
+        with:
+          name: '${{ env.PRODUCT_NAME }}-windows-32'
+          path: ${{ github.workspace }}
+
+      - name: 'Build InnoSetup installer'
+        run: |
+          Get-ChildItem -Filter "*-Win32.zip" -File | Expand-Archive -DestinationPath ./release/
+          Get-ChildItem -Filter "*-Win64.zip" -File | Expand-Archive -DestinationPath ./release/
+          CI/windows/04_package_plugin.ps1 -BuildInstaller -CombinedArchs
+
+      - name: 'Upload build Artifact'
+        if: success() && (github.event_name != 'pull_request' || env.SEEKING_TESTERS == '1')
+        uses: actions/upload-artifact@v2
+        with:
+          name: '${{ env.PRODUCT_NAME }}-windows-release'
+          path: '${{ github.workspace }}/plugin/*-Windows-Installer.exe'
+
+  macos_release:
+    name: '03 - macOS notarized image'
+    runs-on: [macos-latest]
+    needs: [macos_build]
+    env:
+      HAVE_CODESIGN_IDENTITY: ${{ secrets.MACOS_SIGNING_APPLICATION_IDENTITY != '' && secrets.MACOS_SIGNING_INSTALLER_IDENTITY && secrets.MACOS_SIGNING_CERT != '' }}
+    if: startsWith(github.ref, 'refs/tags/') && github.event_name != 'pull_request'
+    defaults:
+      run:
+        shell: bash
+    steps:
+      - name: 'Checkout'
+        if: env.HAVE_CODESIGN_IDENTITY == 'true'
+        uses: actions/checkout@v2.3.3
+        with:
+          submodules: 'recursive'
+
+      - name: 'Download artifact'
+        if: env.HAVE_CODESIGN_IDENTITY == 'true'
+        uses: actions/download-artifact@v2
+        with:
+          name: '${{ env.PRODUCT_NAME }}-macos'
+
+      - name: 'Install Apple Developer Certificate'
+        if: env.HAVE_CODESIGN_IDENTITY == 'true'
+        uses: apple-actions/import-codesign-certs@253ddeeac23f2bdad1646faac5c8c2832e800071
+        with:
+          p12-file-base64: ${{ secrets.MACOS_SIGNING_CERT }}
+          p12-password: ${{ secrets.MACOS_SIGNING_CERT_PASSWORD }}
+
+      - name: 'Install prerequisite XCNotary'
+        if: env.HAVE_CODESIGN_IDENTITY == 'true'
+        run: brew bundle --file CI/include/Xcnotary
+
+      - name: 'Create disk image for distribution'
+        if: env.HAVE_CODESIGN_IDENTITY == 'true'
+        env:
+          CODESIGN_IDENT_USER: '${{ secrets.MACOS_NOTARIZATION_USERNAME }}'
+          CODESIGN_IDENT_PASS: '${{ secrets.MACOS_NOTARIZATION_PASSWORD }}'
+        run: CI/macos/04_package_plugin.sh --notarize
+
+      - name: 'Upload notarized installer package'
+        if: env.HAVE_CODESIGN_IDENTITY == 'true'
+        uses: actions/upload-artifact@v2
+        with:
+          name: '${{ env.PRODUCT_NAME }}-macos-release'
+          path: '${{ github.workspace }}/plugin/*-macOS.pkg'

+ 11 - 0
CI/utility/check-format.sh

@@ -0,0 +1,11 @@
+#!/bin/bash
+dirty=$(git ls-files --modified)
+
+set +x
+if [[ $dirty ]]; then
+	echo "================================="
+    echo "Files were not formatted properly"
+    echo "$dirty"
+    echo "================================="
+    exit 1
+fi

+ 60 - 0
CI/utility/formatcode.sh

@@ -0,0 +1,60 @@
+#!/usr/bin/env bash
+# Original source https://github.com/Project-OSRM/osrm-backend/blob/master/scripts/format.sh
+
+set -o errexit
+set -o pipefail
+set -o nounset
+
+if [ ${#} -eq 1 ]; then
+    VERBOSITY="--verbose"
+else
+    VERBOSITY=""
+fi
+
+# Runs the Clang Formatter in parallel on the code base.
+# Return codes:
+#  - 1 there are files to be formatted
+#  - 0 everything looks fine
+
+# Get CPU count
+OS=$(uname)
+NPROC=1
+if [[ ${OS} = "Linux" ]] ; then
+    NPROC=$(nproc)
+elif [[ ${OS} = "Darwin" ]] ; then
+    NPROC=$(sysctl -n hw.physicalcpu)
+fi
+
+# Discover clang-format
+if type clang-format-12 2> /dev/null ; then
+    CLANG_FORMAT=clang-format-12
+elif type clang-format 2> /dev/null ; then
+    # Clang format found, but need to check version
+    CLANG_FORMAT=clang-format
+    V=$(clang-format --version)
+    if [[ $V != *"version 12.0"* ]]; then
+        echo "clang-format is not 12.0 (returned ${V})"
+        exit 1
+    fi
+else
+    echo "No appropriate clang-format found (expected clang-format-12.0.0, or clang-format)"
+    exit 1
+fi
+
+find . -type d \( \
+    -path ./\*build -o \
+    -path ./cmake -o \
+    -path ./deps -o \
+    -path ./plugins/decklink/\*/decklink-sdk -o \
+    -path ./plugins/enc-amf -o \
+    -path ./plugins/mac-syphon/syphon-framework -o \
+    -path ./plugins/obs-outputs/ftl-sdk -o \
+    -path ./plugins/obs-vst \
+\) -prune -false -type f -o \
+    -name '*.h' -or \
+    -name '*.hpp' -or \
+    -name '*.m' -or \
+    -name '*.m,' -or \
+    -name '*.c' -or \
+    -name '*.cpp' \
+ | xargs -L100 -P ${NPROC} ${CLANG_FORMAT} ${VERBOSITY} -i -style=file -fallback-style=none

+ 0 - 166
azure-pipelines.yml

@@ -1,166 +0,0 @@
-variables:
-  macosSignAndNotarize: false
-  isReleaseMode: ${{ and(eq(variables['isReleaseMode'], true), startsWith(variables['Build.SourceBranch'], 'refs/tags/')) }}
-
-trigger:
-  branches:
-    include:
-      - master
-  tags:
-    include:
-      - '*'
-
-jobs:
-- job: 'Build_Windows'
-  pool:
-    vmImage: 'windows-2019'
-  variables:
-    build_config: RelWithDebInfo
-    DepsBasePath: 'D:\obsdependencies'
-    DepsPath32: '$(DepsBasePath)\win32'
-    DepsPath64: '$(DepsBasePath)\win64'
-    QtBaseDir: 'D:\QtDep'
-    QTDIR32: '$(QtBaseDir)\5.10.1\msvc2017'
-    QTDIR64: '$(QtBaseDir)\5.10.1\msvc2017_64'
-    OBSPath: 'D:\obs-studio'
-  steps:
-    - checkout: self
-      submodules: true
-
-    - script: ./ci/windows/install-qt-win.cmd
-      displayName: 'Install Qt'
-      env:
-        QtBaseDir: $(QtBaseDir)
-
-    - task: Cache@2
-      displayName: Restore cached OBS Studio dependencies
-      inputs:
-        key: 'obsdeps | "$(Agent.OS)"'
-        restoreKeys: |
-          obsdeps | "$(Agent.OS)"
-        path: $(DepsBasePath)
-
-    - script: ./ci/windows/download-obs-deps.cmd
-      displayName: 'Download OBS Studio dependencies'
-
-    - task: Cache@2
-      displayName: Restore cached OBS Studio builds
-      inputs:
-        key: 'obs | "$(Agent.OS)"'
-        restoreKeys: |
-          obs | "$(Agent.OS)"
-        path: $(OBSPath)
-
-    - script: ./ci/windows/prepare-obs-windows.cmd
-      displayName: 'Checkout & CMake OBS Studio'
-      env:
-        build_config: $(build_config)
-        DepsPath32: $(DepsPath32)
-        DepsPath64: $(DepsPath64)
-        QTDIR32: $(QTDIR32)
-        QTDIR64: $(QTDIR64)
-        OBSPath: $(OBSPath)
-
-    - task: MSBuild@1
-      displayName: 'Build OBS Studio 32-bit'
-      inputs:
-        msbuildArguments: '/m /p:Configuration=$(build_config)'
-        solution: '$(OBSPath)\build32\obs-studio.sln'
-
-    - task: MSBuild@1
-      displayName: 'Build OBS Studio 64-bit'
-      inputs:
-        msbuildArguments: '/m /p:Configuration=$(build_config)'
-        solution: '$(OBSPath)\build64\obs-studio.sln'
-
-    - script: ./ci/windows/prepare-windows.cmd
-      displayName: 'CMake Plugin'
-      env:
-        build_config: $(build_config)
-        QTDIR32: $(QTDIR32)
-        QTDIR64: $(QTDIR64)
-        OBSPath: $(OBSPath)
-
-    - task: MSBuild@1
-      displayName: 'Build Plugin 32-bit'
-      inputs:
-        msbuildArguments: '/m /p:Configuration=$(build_config)'
-        solution: '.\build32\main.sln'
-
-    - task: MSBuild@1
-      displayName: 'Build Plugin 64-bit'
-      inputs:
-        msbuildArguments: '/m /p:Configuration=$(build_config)'
-        solution: '.\build64\main.sln'
-
-    - script: ./ci/windows/package-windows.cmd
-      displayName: 'Package Plugin'
-
-    - task: PublishBuildArtifacts@1
-      displayName: 'Upload package artifacts'
-      inputs:
-        pathtoPublish: './package'
-        artifactName: 'windows_build'
-
-- job: 'Build_Linux'
-  pool:
-    vmImage: 'ubuntu-18.04'
-  variables:
-      BUILD_REASON: $(Build.Reason)
-      BRANCH_SHORT_NAME: $(Build.SourceBranchName)
-      BRANCH_FULL_NAME: $(Build.SourceBranch)
-  steps:
-    - checkout: self
-      submodules: true
-
-    - script: ./ci/linux/install-dependencies-ubuntu.sh
-      displayName: 'Install dependencies'
-
-    - script: ./ci/linux/build-ubuntu.sh
-      displayName: 'Build Plugin'
-
-    - script: ./ci/linux/package-ubuntu.sh
-      displayName: 'Package Plugin'
-
-    - task: PublishBuildArtifacts@1
-      inputs:
-        pathtoPublish: './package'
-        artifactName: 'deb_build'
-
-- job: 'Build_macOS'
-  pool:
-    vmImage: 'macos-10.14'
-  steps:
-    - checkout: self
-      submodules: true
-
-    - script: ./ci/macos/install-dependencies-macos.sh
-      displayName: 'Install dependencies'
-
-    - script: ./ci/macos/install-build-obs-macos.sh
-      displayName: 'Build OBS'
-
-    - script: ./ci/macos/build-macos.sh
-      displayName: 'Build Plugin'
-
-    - task: InstallAppleCertificate@1
-      displayName: 'Install release signing certificates'
-      condition: eq(variables['isReleaseMode'], true)
-      inputs:
-        certSecureFile: 'Certificates.p12'
-        certPwd: $(secrets.macOS.certificatesImportPassword)
-
-    - script: ./ci/macos/package-macos.sh
-      displayName: 'Package Plugin'
-      env:
-        RELEASE_MODE: $(isReleaseMode)
-        CODE_SIGNING_IDENTITY: $(secrets.macOS.codeSigningIdentity)
-        INSTALLER_SIGNING_IDENTITY: $(secrets.macOS.installerSigningIdentity)
-        AC_USERNAME: $(secrets.macOS.notarization.username)
-        AC_PASSWORD: $(secrets.macOS.notarization.password)
-        AC_PROVIDER_SHORTNAME: $(secrets.macOS.notarization.providerShortName)
-
-    - task: PublishBuildArtifacts@1
-      inputs:
-        pathtoPublish: './release'
-        artifactName: 'macos_build'