diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 438da763..071acaec 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -3,32 +3,49 @@ name: CI on: [push, pull_request] jobs: - build: + windows: strategy: matrix: os: [windows-2016, windows-2019] include: - os: windows-2016 generator_32: "Visual Studio 15 2017" - generator_64: "Visual Studio 15 2017 Win64" + generator_64: "Visual Studio 15 2017" sysversion: "10.0.17763.0" - os: windows-2019 - generator_32: + generator_32: "Visual Studio 16 2019" generator_64: "Visual Studio 16 2019" sysversion: "10.0.18362.0" runs-on: ${{ matrix.os }} steps: - - name: Clone Repository - uses: actions/checkout@v1 - - name: Update Submodules - run: git submodule update --init --force --recursive + - name: "Clone Repository" + uses: actions/checkout@v1 - name: Install Node.JS 10.x uses: actions/setup-node@v1 with: node-version: 10 - - name: Build + - name: Configure & Compile env: CMAKE_GENERATOR_32: ${{ matrix.generator_32 }} CMAKE_GENERATOR_64: ${{ matrix.generator_64 }} CMAKE_SYSTEM_VERSION: ${{ matrix.sysversion }} run: node ./ci/builder.js + - name: Package + env: + CMAKE_GENERATOR_32: ${{ matrix.generator_32 }} + CMAKE_GENERATOR_64: ${{ matrix.generator_64 }} + run: | + mkdir build/package + node ./ci/packager.js + - 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\64\installer.iss" + - name: "Upload Artifacts" + uses: actions/upload-artifact@v1 + with: + name: ${{ matrix.os }} + path: build/package diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 755927e9..00000000 --- a/appveyor.yml +++ /dev/null @@ -1,84 +0,0 @@ -# Generic Settings -version: '{build}-{branch}' - -matrix: - fast_finish: true - -# Build Image & Environment -platform: x64 - -# Build Tags only -skip_non_tags: true - -image: - - Visual Studio 2017 - -environment: - CMAKE_SYSTEM_VERSION: 10.0.17134.0 - CMAKE_GENERATOR_32: "Visual Studio 15 2017" - CMAKE_GENERATOR_64: "Visual Studio 15 2017 Win64" - PACKAGE_PREFIX: obs-stream-effects - INNOSETUP_URL: http://www.jrsoftware.org/download.php/is.exe - CURL_VERSION: 7.39.0 - -# Resource Cache -cache: - - inno.exe - - build/32/libobs-download - - build/32/libobs-src - - build/64/libobs-download - - build/64/libobs-src - -# Repository Settings -branches: - except: - - /i18n_.*/ - - /i18n_master/ - - i18n_master - - /l10n_.*/ - - /l10n_master/ - - l10n_master - -# Building -install: -- cmd: ci/appveyor-install.bat - -build_script: -- cmd: node ci/builder.js - -after_build: -- cmd: node ci/packager.js -- cmd: ci/appveyor-package.bat - -# Testing -test: off - -# Artifacts -artifacts: - - path: build/obs-stream-effects-*.zip - - path: build/obs-stream-effects-*.7z - - path: build/obs-stream-effects-*.exe - -# Deploying -deploy: - - provider: GitHub - auth_token: - secure: QwBI/KNma7xeTcwQUGpTNSFaZU13Qv9UpiqUKHndJgAsh3aoRM8jnGUvCcg8aQIO - draft: true - prerelease: false - force_update: true - on: - appveyor_repo_tag: true - -# Notifications -notifications: - - provider: Webhook - url: - secure: PTtt5ALhmK0q42jYyx4/Qa1Uf18+gLMXKGdzJjDISJt8IE/K0Zyp58UYmDDbbyLp4pBRf/Ylj8rn/zYL/mqBoDVRIH5zasPqIvBD0ZhtvNjTOxQ3QoRkAmxgpWeMowm3A3I1rLizA2H4EctPpoAJGrvQ1G2HEYn9tVsGYeetFTo= - on_build_success: false - on_build_failure: false - on_build_status_changed: true - body: >- - { - "content": "**Build {{status}}**: [{{commitId}}] {{commitMessage}}\nBy {{commitAuthor}} on {{commitDate}}\n{{buildUrl}}" - } diff --git a/ci/appveyor-install.bat b/ci/appveyor-install.bat deleted file mode 100644 index 07459828..00000000 --- a/ci/appveyor-install.bat +++ /dev/null @@ -1,9 +0,0 @@ -@ECHO OFF -git submodule update --init --force --recursive - -IF EXIST inno.exe ( - curl -kL "%INNOSETUP_URL%" -f --retry 5 -o inno.exe -z inno.exe -) else ( - curl -kL "%INNOSETUP_URL%" -f --retry 5 -o inno.exe -) -inno.exe /VERYSILENT /NORETART /SP- /SUPPRESSMSGBOXES \ No newline at end of file diff --git a/ci/appveyor-package.bat b/ci/appveyor-package.bat deleted file mode 100644 index def1417e..00000000 --- a/ci/appveyor-package.bat +++ /dev/null @@ -1,3 +0,0 @@ -@ECHO OFF -ECHO -- Building Installer -- -"C:\Program Files (x86)\Inno Setup 5\ISCC.exe" /Qp ".\build\64\installer.iss" > nul diff --git a/ci/builder.js b/ci/builder.js index efd93cd4..a873a790 100644 --- a/ci/builder.js +++ b/ci/builder.js @@ -11,9 +11,9 @@ if ((process.platform == "win32") || (process.platform == "win64")) { // Windows let extra_conf = [ `-DCMAKE_SYSTEM_VERSION=${process.env.CMAKE_SYSTEM_VERSION}`, - `-DCMAKE_PACKAGE_NAME=obs-stream-effects`, + `-DCMAKE_PACKAGE_NAME=obs-ffmpeg-encoder`, '-DCMAKE_INSTALL_PREFIX="build/distrib/"', - '-DCMAKE_PACKAGE_PREFIX="build/"', + '-DCMAKE_PACKAGE_PREFIX="build/package/"', ]; let extra_build = [ @@ -26,9 +26,8 @@ if ((process.platform == "win32") || (process.platform == "win64")) { if ((process.env.CMAKE_GENERATOR_32 !== undefined) && (process.env.CMAKE_GENERATOR_32 !== "")) { x32_steps.push( [ 'cmake', [ - '-H.', - '-Bbuild/32', - `-G"${process.env.CMAKE_GENERATOR_32}"`, + '-H.', '-Bbuild/32', + `-G"${process.env.CMAKE_GENERATOR_32}"`, '-AWin32', '-T"host=x64"', ].concat(extra_conf), env ] ); x32_steps.push( @@ -42,10 +41,8 @@ if ((process.platform == "win32") || (process.platform == "win64")) { if ((process.env.CMAKE_GENERATOR_64 !== undefined) && (process.env.CMAKE_GENERATOR_64 !== "")) { x64_steps.push( [ 'cmake', [ - '-H.', - '-Bbuild/64', - `-G"${process.env.CMAKE_GENERATOR_64}"`, - '-T"host=x64"' + '-H.', '-Bbuild/64', + `-G"${process.env.CMAKE_GENERATOR_64}"`, '-Ax64', '-T"host=x64"', ].concat(extra_conf), env ] ); x64_steps.push( diff --git a/ci/packager.js b/ci/packager.js index efb2ae8e..e73becb5 100644 --- a/ci/packager.js +++ b/ci/packager.js @@ -2,20 +2,8 @@ const process = require('process'); const runner = require('./runner.js'); - -function runRunners(runnerArray, name) { - return new Promise(async (resolve, reject) => { - let local = runnerArray.reverse(); - while (local.length > 0) { - let task = local.pop(); - let work = new runner(name, task[0], task[1], task[2]); - await work.run(); - } - resolve(0); - }); -} - let env = process.env; + let steps = []; if ((process.env.CMAKE_GENERATOR_64 !== undefined) && (process.env.CMAKE_GENERATOR_64 !== "")) { @@ -50,6 +38,24 @@ if ((process.env.CMAKE_GENERATOR_64 !== undefined) && (process.env.CMAKE_GENERAT ); } +function runRunners(runnerArray, name) { + return new Promise(async (resolve, reject) => { + let local = runnerArray.reverse(); + while (local.length > 0) { + try { + let task = local.pop(); + let work = new runner(name, task[0], task[1], task[2]); + await work.run(); + } catch (e) { + reject(e); + return; + } + } + resolve(0); + }); +} + + let promises = []; promises.push(runRunners(steps, "32-Bit")); Promise.all(promises).then(