mirror of
				https://github.com/KartKrewDev/RingRacers.git
				synced 2025-10-30 08:01:28 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			195 lines
		
	
	
	
		
			6.7 KiB
		
	
	
	
		
			Batchfile
		
	
	
	
	
	
			
		
		
	
	
			195 lines
		
	
	
	
		
			6.7 KiB
		
	
	
	
		
			Batchfile
		
	
	
	
	
	
@setlocal enableextensions enabledelayedexpansion
 | 
						|
 | 
						|
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 | 
						|
: Appveyor Deployer
 | 
						|
: See appveyor.yml for default variables
 | 
						|
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 | 
						|
 | 
						|
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 | 
						|
: Evaluate whether we should be deploying
 | 
						|
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 | 
						|
 | 
						|
if not [%DPL_ENABLED%] == [1] (
 | 
						|
    echo Deployer is not enabled...
 | 
						|
    exit /b
 | 
						|
)
 | 
						|
 | 
						|
: Don't do DD installs because fmodex DLL handling is not implemented.
 | 
						|
if [%CONFIGURATION%] == [DD] (
 | 
						|
    echo Deployer does not support DD builds...
 | 
						|
    exit /b
 | 
						|
)
 | 
						|
 | 
						|
if [%CONFIGURATION%] == [DD64] (
 | 
						|
    echo Deployer does not support DD builds...
 | 
						|
    exit /b
 | 
						|
)
 | 
						|
 | 
						|
: Substring match from https://stackoverflow.com/questions/7005951/batch-file-find-if-substring-is-in-string-not-in-a-file
 | 
						|
: The below line says "if deployer is NOT in string"
 | 
						|
: Note that APPVEYOR_REPO_BRANCH for pull request builds is the BASE branch that PR is merging INTO
 | 
						|
if x%APPVEYOR_REPO_BRANCH:deployer=%==x%APPVEYOR_REPO_BRANCH% (
 | 
						|
    if not [%APPVEYOR_REPO_TAG%] == [true] (
 | 
						|
        echo Deployer is enabled but we are not in a release tag or a 'deployer' branch...
 | 
						|
        exit /b
 | 
						|
    ) else (
 | 
						|
        if not [%DPL_TAG_ENABLED%] == [1] (
 | 
						|
            echo Deployer is not enabled for release tags...
 | 
						|
            exit /b
 | 
						|
        )
 | 
						|
    )
 | 
						|
)
 | 
						|
 | 
						|
: Release tags always get optional assets (music.dta)
 | 
						|
if [%APPVEYOR_REPO_TAG%] == [true] (
 | 
						|
    set "ASSET_FILES_OPTIONAL_GET=1"
 | 
						|
)
 | 
						|
 | 
						|
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 | 
						|
: Get asset archives
 | 
						|
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 | 
						|
 | 
						|
if exist "C:\Users\appveyor\srb2_cache\archives\" (
 | 
						|
    if [%ASSET_CLEAN%] == [1] (
 | 
						|
        echo Cleaning asset archives...
 | 
						|
        rmdir /s /q "C:\Users\appveyor\srb2_cache\archives"
 | 
						|
    )
 | 
						|
)
 | 
						|
 | 
						|
if not exist "C:\Users\appveyor\srb2_cache\archives\" mkdir "C:\Users\appveyor\srb2_cache\archives"
 | 
						|
 | 
						|
goto EXTRACT_ARCHIVES
 | 
						|
 | 
						|
::::::::::::::::::::::::::::::::
 | 
						|
: ARCHIVE_NAME_PARTS
 | 
						|
: Call this like a function. %archivepath% is the path to extract parts from.
 | 
						|
::::::::::::::::::::::::::::::::
 | 
						|
 | 
						|
for %%a in (%archivepath%) do (
 | 
						|
    set "file=%%~fa"
 | 
						|
    set "filepath=%%~dpa"
 | 
						|
    set "filename=%%~nxa"
 | 
						|
)
 | 
						|
 | 
						|
set "localarchivepath=C:\Users\appveyor\srb2_cache\archives\%filename%"
 | 
						|
 | 
						|
goto EOF
 | 
						|
 | 
						|
::::::::::::::::::::::::::::::::
 | 
						|
: EXTRACT_ARCHIVES
 | 
						|
::::::::::::::::::::::::::::::::
 | 
						|
 | 
						|
set "archivepath=%ASSET_ARCHIVE_PATH%"
 | 
						|
call :ARCHIVE_NAME_PARTS
 | 
						|
set "ASSET_ARCHIVE_PATH_LOCAL=%localarchivepath%"
 | 
						|
if not exist "%localarchivepath%" appveyor DownloadFile "%ASSET_ARCHIVE_PATH%" -FileName "%localarchivepath%"
 | 
						|
 | 
						|
set "archivepath=%ASSET_ARCHIVE_PATCH_PATH%"
 | 
						|
call :ARCHIVE_NAME_PARTS
 | 
						|
set "ASSET_ARCHIVE_PATCH_PATH_LOCAL=%localarchivepath%"
 | 
						|
if not exist "%localarchivepath%" appveyor DownloadFile "%ASSET_ARCHIVE_PATCH_PATH%" -FileName "%localarchivepath%"
 | 
						|
 | 
						|
if not [%X86_64%] == [1] (
 | 
						|
    set "archivepath=%ASSET_ARCHIVE_X86_PATH%"
 | 
						|
    call :ARCHIVE_NAME_PARTS
 | 
						|
    set "ASSET_ARCHIVE_X86_PATH_LOCAL=!localarchivepath!"
 | 
						|
    if not exist "!localarchivepath!" appveyor DownloadFile "%ASSET_ARCHIVE_X86_PATH%" -FileName "!localarchivepath!"
 | 
						|
)
 | 
						|
 | 
						|
if [%X86_64%] == [1] (
 | 
						|
    set "archivepath=%ASSET_ARCHIVE_X64_PATH%"
 | 
						|
    call :ARCHIVE_NAME_PARTS
 | 
						|
    set "ASSET_ARCHIVE_X64_PATH_LOCAL=!localarchivepath!"
 | 
						|
    if not exist "!localarchivepath!" appveyor DownloadFile "%ASSET_ARCHIVE_X64_PATH%" -FileName "!localarchivepath!"
 | 
						|
)
 | 
						|
 | 
						|
if [%ASSET_FILES_OPTIONAL_GET%] == [1] (
 | 
						|
    set "archivepath=%ASSET_ARCHIVE_OPTIONAL_PATH%"
 | 
						|
    call :ARCHIVE_NAME_PARTS
 | 
						|
    set "ASSET_ARCHIVE_OPTIONAL_PATH_LOCAL=!localarchivepath!"
 | 
						|
    if not exist "!localarchivepath!" appveyor DownloadFile "%ASSET_ARCHIVE_OPTIONAL_PATH%" -FileName "!localarchivepath!"
 | 
						|
)
 | 
						|
 | 
						|
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 | 
						|
: Build the installers
 | 
						|
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 | 
						|
 | 
						|
mkdir "assets\installer"
 | 
						|
mkdir "assets\patch"
 | 
						|
 | 
						|
7z x -y "%ASSET_ARCHIVE_PATH_LOCAL%" -o"assets\installer" >null
 | 
						|
7z x -y "%ASSET_ARCHIVE_PATCH_PATH_LOCAL%" -o"assets\patch" >null
 | 
						|
 | 
						|
: Copy optional files to full installer (music.dta)
 | 
						|
if [%ASSET_FILES_OPTIONAL_GET%] == [1] (
 | 
						|
    7z x -y "%ASSET_ARCHIVE_OPTIONAL_PATH_LOCAL%" -o"assets\installer" >null
 | 
						|
)
 | 
						|
 | 
						|
: Copy EXE -- BUILD_PATH is from appveyor.yml
 | 
						|
robocopy /S /ns /nc /nfl /ndl /np /njh /njs "%BUILD_PATH%" "assets\installer" /XF "*.debug" ".gitignore"
 | 
						|
robocopy /S /ns /nc /nfl /ndl /np /njh /njs "%BUILD_PATH%" "assets\patch" /XF "*.debug" ".gitignore"
 | 
						|
 | 
						|
: Are we building DD? (we were supposed to exit earlier!)
 | 
						|
if [%CONFIGURATION%] == [DD] ( set "DPL_INSTALLER_NAME=%DPL_INSTALLER_NAME%-DD" )
 | 
						|
if [%CONFIGURATION%] == [DD64] ( set "DPL_INSTALLER_NAME=%DPL_INSTALLER_NAME%-DD" )
 | 
						|
 | 
						|
: If we are not a release tag, suffix the filename
 | 
						|
if not [%APPVEYOR_REPO_TAG%] == [true] (
 | 
						|
    set "INSTALLER_SUFFIX=-%APPVEYOR_REPO_BRANCH%-%GITSHORT%-%CONFIGURATION%"
 | 
						|
) else (
 | 
						|
    set "INSTALLER_SUFFIX="
 | 
						|
)
 | 
						|
 | 
						|
if not [%X86_64%] == [1] ( goto X86_INSTALL )
 | 
						|
 | 
						|
::::::::::::::::::::::::::::::::
 | 
						|
: X64_INSTALL
 | 
						|
::::::::::::::::::::::::::::::::
 | 
						|
 | 
						|
: Extract DLL binaries
 | 
						|
7z x -y "%ASSET_ARCHIVE_X64_PATH_LOCAL%" -o"assets\installer" >null
 | 
						|
if [%PACKAGE_PATCH_DLL_GET%] == [1] (
 | 
						|
    7z x -y "!ASSET_ARCHIVE_X64_PATH_LOCAL!" -o"assets\patch" >null
 | 
						|
)
 | 
						|
 | 
						|
: Build the installer
 | 
						|
7z a -sfx7z.sfx "%DPL_INSTALLER_NAME%-x64-Installer%INSTALLER_SUFFIX%.exe" .\assets\installer\*
 | 
						|
 | 
						|
: Build the patch
 | 
						|
7z a "%DPL_INSTALLER_NAME%-x64-Patch%INSTALLER_SUFFIX%.zip" .\assets\patch\*
 | 
						|
 | 
						|
: Upload artifacts
 | 
						|
appveyor PushArtifact "%DPL_INSTALLER_NAME%-x64-Installer%INSTALLER_SUFFIX%.exe"
 | 
						|
appveyor PushArtifact "%DPL_INSTALLER_NAME%-x64-Patch%INSTALLER_SUFFIX%.zip"
 | 
						|
 | 
						|
: We only do x86 OR x64, one at a time, so exit now.
 | 
						|
goto EOF
 | 
						|
 | 
						|
::::::::::::::::::::::::::::::::
 | 
						|
: X86_INSTALL
 | 
						|
::::::::::::::::::::::::::::::::
 | 
						|
 | 
						|
: Extract DLL binaries
 | 
						|
7z x -y "%ASSET_ARCHIVE_X86_PATH_LOCAL%" -o"assets\installer" >null
 | 
						|
if [%PACKAGE_PATCH_DLL_GET%] == [1] (
 | 
						|
    7z x -y "!ASSET_ARCHIVE_X86_PATH_LOCAL!" -o"assets\patch" >null
 | 
						|
)
 | 
						|
 | 
						|
: Build the installer
 | 
						|
7z a -sfx7z.sfx "%DPL_INSTALLER_NAME%-Installer%INSTALLER_SUFFIX%.exe" .\assets\installer\*
 | 
						|
 | 
						|
: Build the patch
 | 
						|
7z a "%DPL_INSTALLER_NAME%-Patch%INSTALLER_SUFFIX%.zip" .\assets\patch\*
 | 
						|
 | 
						|
: Upload artifacts
 | 
						|
appveyor PushArtifact "%DPL_INSTALLER_NAME%-Installer%INSTALLER_SUFFIX%.exe"
 | 
						|
appveyor PushArtifact "%DPL_INSTALLER_NAME%-Patch%INSTALLER_SUFFIX%.zip"
 | 
						|
 | 
						|
: We only do x86 OR x64, one at a time, so exit now
 | 
						|
goto EOF
 | 
						|
 | 
						|
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 | 
						|
: EOF
 | 
						|
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 | 
						|
 | 
						|
endlocal
 |