mirror of
https://github.com/Palakis/obs-websocket.git
synced 2024-08-30 18:12:16 +00:00
Windows CI: Only build obs-studio if not cached
Run a series of checks to determine if CI needs to build obs-studio before trying to build obs-websocket.
This commit is contained in:
parent
4b9a84ccee
commit
a1fa5dc3cb
118
CI/install-build-obs.cmd
Normal file
118
CI/install-build-obs.cmd
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
@echo off
|
||||||
|
SETLOCAL EnableDelayedExpansion
|
||||||
|
|
||||||
|
REM Check if obs-studio build exists.
|
||||||
|
REM If the obs-studio directory does exist, check if the last OBS tag built
|
||||||
|
REM matches the latest OBS tag.
|
||||||
|
REM If the tags match, do not build obs-studio.
|
||||||
|
REM If the tags do not match, build obs-studio.
|
||||||
|
REM If the obs-studio directory doesn't exist, build obs-studio.
|
||||||
|
echo Checking for obs-studio build...
|
||||||
|
|
||||||
|
set OBSLatestTagPrePull=0
|
||||||
|
set OBSLatestTagPostPull=0
|
||||||
|
echo Latest tag pre-pull: %OBSLatestTagPrePull%
|
||||||
|
echo Latest tag post-pull: %OBSLatestTagPostPull%
|
||||||
|
|
||||||
|
REM Set up the build flag as undefined.
|
||||||
|
set "BuildOBS="
|
||||||
|
|
||||||
|
REM Check the last tag successfully built by CI.
|
||||||
|
if exist C:\projects\obs-studio-last-tag-built.txt (
|
||||||
|
set /p OBSLastTagBuilt=<C:\projects\obs-studio-last-tag-built.txt
|
||||||
|
) else (
|
||||||
|
set OBSLastTagBuilt=0
|
||||||
|
)
|
||||||
|
|
||||||
|
REM If obs-studio directory exists, run git pull and get the latest tag number.
|
||||||
|
if exist C:\projects\obs-studio\ (
|
||||||
|
echo obs-studio directory exists
|
||||||
|
echo Updating tag info
|
||||||
|
cd C:\projects\obs-studio\
|
||||||
|
git describe --tags --abbrev=0 > C:\projects\latest-obs-studio-tag-pre-pull.txt
|
||||||
|
set /p OBSLatestTagPrePull=<C:\projects\latest-obs-studio-tag-pre-pull.txt
|
||||||
|
git checkout master
|
||||||
|
git pull
|
||||||
|
git describe --tags --abbrev=0 > C:\projects\latest-obs-studio-tag-post-pull.txt
|
||||||
|
set /p OBSLatestTagPostPull=<C:\projects\latest-obs-studio-tag-post-pull.txt
|
||||||
|
set /p OBSLatestTag=<C:\projects\latest-obs-studio-tag-post-pull.txt
|
||||||
|
echo %OBSLatestTagPostPull%> C:\projects\latest-obs-studio-tag.txt
|
||||||
|
)
|
||||||
|
|
||||||
|
REM Check the obs-studio tags for mismatches.
|
||||||
|
REM If a new tag was pulled, set the build flag.
|
||||||
|
if not %OBSLatestTagPrePull%==%OBSLatestTagPostPull% (
|
||||||
|
echo Latest tag pre-pull: %OBSLatestTagPrePull%
|
||||||
|
echo Latest tag post-pull: %OBSLatestTagPostPull%
|
||||||
|
echo Tags do not match. Need to rebuild OBS.
|
||||||
|
set BuildOBS=true
|
||||||
|
)
|
||||||
|
|
||||||
|
REM If the latest git tag doesn't match the last built tag, set the build flag.
|
||||||
|
if not %OBSLatestTagPostPull%==%OBSLastTagBuilt% (
|
||||||
|
echo Last built OBS tag: %OBSLastTagBuilt%
|
||||||
|
echo Latest tag post-pull: %OBSLatestTagPostPull%
|
||||||
|
echo Tags do not match. Need to rebuild OBS.
|
||||||
|
set BuildOBS=true
|
||||||
|
)
|
||||||
|
|
||||||
|
REM If obs-studio directory does not exist, clone the git repo, get the latest
|
||||||
|
REM tag number, and set the build flag.
|
||||||
|
if not exist C:\projects\obs-studio (
|
||||||
|
echo obs-studio directory does not exist
|
||||||
|
git clone --recursive https://github.com/jp9000/obs-studio
|
||||||
|
cd C:\projects\obs-studio\
|
||||||
|
git describe --tags --abbrev=0 > C:\projects\obs-studio-latest-tag.txt
|
||||||
|
set /p OBSLatestTag=<C:\projects\obs-studio-latest-tag.txt
|
||||||
|
set BuildOBS=true
|
||||||
|
)
|
||||||
|
|
||||||
|
REM Some debug info
|
||||||
|
echo:
|
||||||
|
echo Latest tag pre-pull: %OBSLatestTagPrePull%
|
||||||
|
echo Latest tag post-pull: %OBSLatestTagPostPull%
|
||||||
|
echo Latest tag: %OBSLatestTag%
|
||||||
|
echo Last built OBS tag: %OBSLastTagBuilt%
|
||||||
|
|
||||||
|
if defined BuildOBS (
|
||||||
|
echo BuildOBS: true
|
||||||
|
) else (
|
||||||
|
echo BuildOBS: false
|
||||||
|
)
|
||||||
|
echo:
|
||||||
|
|
||||||
|
REM If the build flag is set, build obs-studio.
|
||||||
|
if defined BuildOBS (
|
||||||
|
echo Building obs-studio...
|
||||||
|
echo git checkout %OBSLatestTag%
|
||||||
|
git checkout %OBSLatestTag%
|
||||||
|
echo:
|
||||||
|
echo Removing previous build dirs...
|
||||||
|
if exist build rmdir /s /q C:\projects\obs-studio\build
|
||||||
|
if exist build32 rmdir /s /q C:\projects\obs-studio\build32
|
||||||
|
if exist build64 rmdir /s /q C:\projects\obs-studio\build64
|
||||||
|
echo Making new build dirs...
|
||||||
|
mkdir build
|
||||||
|
mkdir build32
|
||||||
|
mkdir build64
|
||||||
|
echo Running cmake for obs-studio %OBSLatestTag% 32-bit...
|
||||||
|
cd ./build32
|
||||||
|
cmake -G "Visual Studio 12 2013" -DCOPIED_DEPENDENCIES=false -DCOPY_DEPENDENCIES=true ..
|
||||||
|
echo:
|
||||||
|
echo:
|
||||||
|
echo Running cmake for obs-studio %OBSLatestTag% 64-bit...
|
||||||
|
cd ../build64
|
||||||
|
cmake -G "Visual Studio 12 2013 Win64" -DCOPIED_DEPENDENCIES=false -DCOPY_DEPENDENCIES=true ..
|
||||||
|
echo:
|
||||||
|
echo:
|
||||||
|
echo Building obs-studio %OBSLatestTag% 32-bit ^(Build Config: %build_config%^)...
|
||||||
|
call msbuild /m /p:Configuration=%build_config% C:\projects\obs-studio\build32\obs-studio.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
|
||||||
|
echo Building obs-studio %OBSLatestTag% 64-bit ^(Build Config: %build_config%^)...
|
||||||
|
call msbuild /m /p:Configuration=%build_config% C:\projects\obs-studio\build64\obs-studio.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
|
||||||
|
cd ..
|
||||||
|
git describe --tags --abbrev=0 > C:\projects\obs-studio-last-tag-built.txt
|
||||||
|
set /p OBSLastTagBuilt=<C:\projects\obs-studio-last-tag-built.txt
|
||||||
|
) else (
|
||||||
|
echo Last OBS tag built is: %OBSLastTagBuilt%
|
||||||
|
echo No need to rebuild OBS.
|
||||||
|
)
|
15
appveyor.yml
15
appveyor.yml
@ -13,18 +13,7 @@ install:
|
|||||||
- set QTDIR32=%CD%\Qt5.7.0\msvc2013
|
- set QTDIR32=%CD%\Qt5.7.0\msvc2013
|
||||||
- set QTDIR64=%CD%\Qt5.7.0\msvc2013_64
|
- set QTDIR64=%CD%\Qt5.7.0\msvc2013_64
|
||||||
- set build_config=Release
|
- set build_config=Release
|
||||||
- git clone --recursive https://github.com/jp9000/obs-studio
|
- call C:\projects\obs-websocket\CI\install-build-obs.cmd
|
||||||
- cd C:\projects\obs-studio\
|
|
||||||
- git checkout 20.1.0
|
|
||||||
- mkdir build
|
|
||||||
- mkdir build32
|
|
||||||
- mkdir build64
|
|
||||||
- cd ./build32
|
|
||||||
- cmake -G "Visual Studio 12 2013" -DCOPIED_DEPENDENCIES=false -DCOPY_DEPENDENCIES=true ..
|
|
||||||
- cd ../build64
|
|
||||||
- cmake -G "Visual Studio 12 2013 Win64" -DCOPIED_DEPENDENCIES=false -DCOPY_DEPENDENCIES=true ..
|
|
||||||
- call msbuild /m /p:Configuration=%build_config% C:\projects\obs-studio\build32\obs-studio.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
|
|
||||||
- call msbuild /m /p:Configuration=%build_config% C:\projects\obs-studio\build64\obs-studio.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
|
|
||||||
- cd C:\projects\obs-websocket\
|
- cd C:\projects\obs-websocket\
|
||||||
- mkdir build32
|
- mkdir build32
|
||||||
- mkdir build64
|
- mkdir build64
|
||||||
@ -48,3 +37,5 @@ test: off
|
|||||||
cache:
|
cache:
|
||||||
- C:\projects\dependencies2013.zip
|
- C:\projects\dependencies2013.zip
|
||||||
- C:\projects\qt570.zip
|
- C:\projects\qt570.zip
|
||||||
|
- C:\projects\obs-studio-last-tag-built.txt
|
||||||
|
- C:\projects\obs-studio\
|
||||||
|
Loading…
x
Reference in New Issue
Block a user