OpenRCT2/scripts/ps/publish.ps1

90 lines
3.1 KiB
PowerShell
Raw Normal View History

2015-12-10 01:13:20 +01:00
#########################################################
# Script to build and package OpenRCT2
# - Sets the source code preprocessor defines
# - Builds a clean release of OpenRCT2
# - Creates a ZIP for distribution
2015-12-10 01:13:20 +01:00
#########################################################
param (
2015-12-10 01:13:20 +01:00
[string]$server = "",
[string]$buildNo = ""
)
2015-12-12 19:55:10 +01:00
# Setup
$ErrorActionPreference = "Stop"
$scriptsPath = Split-Path $Script:MyInvocation.MyCommand.Path
Import-Module "$scriptsPath\common.psm1" -DisableNameChecking
# Get paths
2015-12-12 19:55:10 +01:00
$rootPath = Get-RootPath
# Set build attributes
function do-prepareSource($build_server = "", $build_number = "")
{
Write-Host "Setting build #defines..." -ForegroundColor Cyan
# $build_number = "";
# $build_server = "";
$build_branch = (git rev-parse --abbrev-ref HEAD)
$build_commit_sha1 = (git rev-parse HEAD)
$build_commit_sha1_short = (git rev-parse --short HEAD)
$defines = @{ }
$defines["OPENRCT2_BUILD_NUMBER"] = $build_number;
$defines["OPENRCT2_BUILD_SERVER"] = $build_server;
$defines["OPENRCT2_BRANCH"] = $build_branch;
$defines["OPENRCT2_COMMIT_SHA1"] = $build_commit_sha1;
$defines["OPENRCT2_COMMIT_SHA1_SHORT"] = $build_commit_sha1_short;
$defineString = ""
foreach ($key in $defines.Keys) {
$value = $defines[$key]
if ($value -is [System.String]) {
$value = $value.Replace('"', '\"')
}
$defineString += "$key=""$value"";";
}
# Set the environment variable which the msbuild project will use
$env:OPENRCT2_DEFINES = $defineString;
}
# Building OpenRCT2
function do-build()
{
Write-Host "Building OpenRCT2..." -ForegroundColor Cyan
2015-12-11 01:20:09 +01:00
& "$scriptsPath\build.ps1" all -Rebuild
}
# Package
function do-package()
{
Write-Host "Publishing OpenRCT2..." -ForegroundColor Cyan
$releaseDir = "$rootPath\bin"
$distDir = "$rootPath\distribution"
$tempDir = "$rootPath\artifacts\temp"
$outZip = "$rootPath\artifacts\openrct2.zip"
# Create new temp directory
Remove-Item -Force -Recurse $tempDir -ErrorAction SilentlyContinue
New-Item -Force -ItemType Directory $tempDir > $null
# Copy files to be archived
2015-12-10 01:13:20 +01:00
Copy-Item -Force -Recurse "$releaseDir\data" $tempDir -ErrorAction Stop
Copy-Item -Force "$releaseDir\openrct2.exe" $tempDir -ErrorAction Stop
Copy-Item -Force "$releaseDir\openrct2.dll" $tempDir -ErrorAction Stop
Copy-Item -Force "$releaseDir\curl-ca-bundle.crt" $tempDir -ErrorAction Stop
Copy-Item -Force "$releaseDir\SDL2.dll" $tempDir -ErrorAction Stop
Copy-Item -Force "$distDir\changelog.txt" $tempDir -ErrorAction Stop
Copy-Item -Force "$distDir\known_issues.txt" $tempDir -ErrorAction Stop
Copy-Item -Force "$distDir\readme.txt" $tempDir -ErrorAction Stop
# Create archive
7za a -tzip -mx9 $outZip "$tempDir\*"
# Remove temp directory
Remove-Item -Force -Recurse $tempDir -ErrorAction SilentlyContinue
}
do-prepareSource $server $buildNo
do-build
do-package