diff --git a/appveyor.yml b/appveyor.yml index 4b8649f..93c98ff 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,43 +1,49 @@ +# Generic Settings version: '{build}-{branch}' -pull_requests: - do_not_increment_build_number: true matrix: fast_finish: true +# Build Image & Environment platform: x64 -image: Visual Studio 2017 -environment: - CMAKE_SYSTEM_VERSION: 10.0.16299.91 - PACKAGE_PREFIX: obs-ffmpeg-encoder - INNOSETUP_URL: http://www.jrsoftware.org/download.php/is-unicode.exe +image: + - Visual Studio 2017 + +environment: + CMAKE_SYSTEM_VERSION: 10.0.17134.0 + PACKAGE_PREFIX: xmr-ffmpeg-encoders + 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 + +# Building install: - cmd: ci/appveyor-install.bat build_script: -- cmd: ci/appveyor-build.bat +- cmd: node ci/appveyor-build.js after_build: - cmd: ci/appveyor-package.bat -cache: - - inno.exe - - build/32/obsdeps-build - - build/32/obsdeps-download - - build/32/obsdeps-src - - build/32/libobs-build - - build/32/libobs-download - - build/32/libobs-src - - build/64/libobs-build - - build/64/libobs-download - - build/64/libobs-src +# Testing +test: off +# Artifacts artifacts: - - path: build/obs-ffmpeg-encoder-*.zip - - path: build/obs-ffmpeg-encoder-*.7z - - path: build/obs-ffmpeg-encoder-*.exe + - path: build/xmr-ffmpeg-encoders-*.zip + - path: build/xmr-ffmpeg-encoders-*.7z + - path: build/xmr-ffmpeg-encoders-*.exe +# Deploying deploy: - provider: GitHub auth_token: @@ -48,4 +54,15 @@ deploy: on: appveyor_repo_tag: true -test: off +# 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-build.bat b/ci/appveyor-build.bat deleted file mode 100644 index 6a8d1e4..0000000 --- a/ci/appveyor-build.bat +++ /dev/null @@ -1,4 +0,0 @@ -cmake -H. -B"build/32" -G"Visual Studio 15 2017" -DCMAKE_INSTALL_PREFIX="%CD%/build/distrib" -DCMAKE_PACKAGE_PREFIX="%CD%/build" -DCMAKE_PACKAGE_NAME="obs-ffmpeg-encoder" -cmake -H. -B"build/64" -G"Visual Studio 15 2017 Win64" -T"host=x64" -DCMAKE_INSTALL_PREFIX="%CD%/build/distrib" -DCMAKE_PACKAGE_PREFIX="%CD%/build" -DCMAKE_PACKAGE_NAME="obs-ffmpeg-encoder" -DOBS_DEPENDENCIES_DIR="%CD%/build/32/obsdeps-src" -cmake --build build/32 --target INSTALL --config RelWithDebInfo -- /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" -cmake --build build/64 --target INSTALL --config RelWithDebInfo -- /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" \ No newline at end of file diff --git a/ci/appveyor-build.js b/ci/appveyor-build.js new file mode 100644 index 0000000..f43946c --- /dev/null +++ b/ci/appveyor-build.js @@ -0,0 +1,98 @@ +const cp = require('child_process'); + +var config32 = cp.spawn( + "cmake", [ + '-H.', + '-B"build/32"', + '-G"Visual Studio 15 2017"', + '-DCMAKE_INSTALL_PREFIX="build/distrib"', + '-DCMAKE_PACKAGE_PREFIX="build"', + '-DCMAKE_PACKAGE_NAME="obs-stream-effects"' + ], { + windowsVerbatimArguments: true, + windowsHide: true + } +); +config32.stdout.on('data', (data) => { + process.stdout.write(`[32:Out] ${data}`); +}); +config32.stderr.on('data', (data) => { + console.log(`[32:Err] ${data}`); +}); +config32.on('exit', (code, signal) => { + if (code != 0) { + process.exit(code) + } + var build32 = cp.spawn( + "cmake", [ + '--build build/32', + '--target INSTALL', + '--config RelWithDebInfo', + '--', + '/logger:"C:\\Program Files\\AppVeyor\\BuildAgent\\Appveyor.MSBuildLogger.dll"' + ], { + windowsVerbatimArguments: true, + windowsHide: true + } + ); + build32.stdout.on('data', (data) => { + process.stdout.write(`[32:Out] ${data}`); + }); + build32.stderr.on('data', (data) => { + process.stderr.write(`[32:Err] ${data}`); + }); + build32.on('exit', (code, signal) => { + if (code != 0) { + process.exit(code) + } + }); +}); + +var config64 = cp.spawn( + "cmake", [ + '-H.', + '-B"build/64"', + '-G"Visual Studio 15 2017 Win64"', + '-DCMAKE_INSTALL_PREFIX="build/distrib"', + '-DCMAKE_PACKAGE_PREFIX="build"', + '-DCMAKE_PACKAGE_NAME="obs-stream-effects"' + ], { + windowsVerbatimArguments: true, + windowsHide: true + } +); +config64.stdout.on('data', (data) => { + process.stdout.write(`[64:Out] ${data}`); +}); +config64.stderr.on('data', (data) => { + console.log(`[64:Err] ${data}`); +}); +config64.on('exit', (code, signal) => { + if (code != 0) { + process.exit(code) + } + var build64 = cp.spawn( + "cmake", [ + '--build build/64', + '--target INSTALL', + '--config RelWithDebInfo', + '--', + '/logger:"C:\\Program Files\\AppVeyor\\BuildAgent\\Appveyor.MSBuildLogger.dll"' + ], { + windowsVerbatimArguments: true, + windowsHide: true + } + ); + build64.stdout.on('data', (data) => { + process.stdout.write(`[32:Out] ${data}`); + }); + build64.stderr.on('data', (data) => { + process.stderr.write(`[32:Err] ${data}`); + }); + build64.on('exit', (code, signal) => { + if (code != 0) { + process.exit(code) + } + }); +}); + diff --git a/ci/appveyor-install.bat b/ci/appveyor-install.bat index d579ad8..0745982 100644 --- a/ci/appveyor-install.bat +++ b/ci/appveyor-install.bat @@ -1,3 +1,4 @@ +@ECHO OFF git submodule update --init --force --recursive IF EXIST inno.exe ( diff --git a/ci/appveyor-package.bat b/ci/appveyor-package.bat index 191d5a9..ebf2cb3 100644 --- a/ci/appveyor-package.bat +++ b/ci/appveyor-package.bat @@ -1,6 +1,9 @@ -ECHO -- Building 7z Archive -- -cmake --build build/64 --target PACKAGE_7Z --config RelWithDebInfo -ECHO -- Building Zip Archive -- -cmake --build build/64 --target PACKAGE_ZIP --config RelWithDebInfo -ECHO -- Building Installer -- -"C:\Program Files (x86)\Inno Setup 5\ISCC.exe" /Qp ".\build\64\installer.iss" > nul \ No newline at end of file +@ECHO OFF +IF "%APPVEYOR_REPO_TAG%"=="true" ( + ECHO -- Building 7z Archive -- + cmake --build build/64 --target PACKAGE_7Z --config RelWithDebInfo + ECHO -- Building Zip Archive -- + cmake --build build/64 --target PACKAGE_ZIP --config RelWithDebInfo + ECHO -- Building Installer -- + "C:\Program Files (x86)\Inno Setup 5\ISCC.exe" /Qp ".\build\64\installer.iss" > nul +) \ No newline at end of file