diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 438da76..f012c6b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -3,32 +3,42 @@ 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: "Upload Artifacts" + uses: actions/upload-artifact@v1 + with: + name: ${{ matrix.os }} + path: build/package diff --git a/ci/builder.js b/ci/builder.js index 50cc7a9..a873a79 100644 --- a/ci/builder.js +++ b/ci/builder.js @@ -13,7 +13,7 @@ if ((process.platform == "win32") || (process.platform == "win64")) { `-DCMAKE_SYSTEM_VERSION=${process.env.CMAKE_SYSTEM_VERSION}`, `-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 efb2ae8..e73becb 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(