ci: Add packaging and artifacts to Github Actions

Github Actions is going to replace AppVeyor in the long term for all release archives, simply because it integrates better with GitHub.
This commit is contained in:
Michael Fabian 'Xaymar' Dirks
2019-10-30 09:57:17 +01:00
committed by Michael Fabian Dirks
parent b07365cdc4
commit f9ad87a56d
3 changed files with 42 additions and 29 deletions
+17 -7
View File
@@ -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
- name: "Clone Repository"
uses: actions/checkout@v1
- name: Update Submodules
run: git submodule update --init --force --recursive
- 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
+5 -8
View File
@@ -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(
+19 -13
View File
@@ -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(