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:
committed by
Michael Fabian Dirks
parent
b07365cdc4
commit
f9ad87a56d
@@ -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
@@ -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
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user