-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathpackage-release.ps1
58 lines (49 loc) · 1.72 KB
/
package-release.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
if(git status --porcelain |Where {$_ -match '^\?\?'}){
echo "Untracked files detected!"
pause
exit
}
elseif(git status --porcelain |Where {$_ -notmatch '^\?\?'}) {
echo "Uncommited changes detected!"
pause
exit
}
else {
echo "Packaging releases..."
}
$subdirs = Get-ChildItem -Directory .\bin\
$build_number = $(git rev-list HEAD --count)
$package_folder = "Release"
$output_folder = "release-packages"
$prefix = "UniverseLAN"
echo "Build number: $build_number"
foreach ($version in $subdirs)
{
if($version.Name -ne "Debug" -and $version.Name -ne "Release")
{
$version_release_dir = ".\bin\" + $version.Name + "\$package_folder"
$exists_x86 = Test-Path -Path "$version_release_dir\UniverseLANServer.exe" -PathType Leaf
$exists_x64 = Test-Path -Path "$version_release_dir\UniverseLANServer64.exe" -PathType Leaf
$ext = ''
if($exists_x86 -and $exists_x64) {
$ext = "x64_x86"
} elseif($exists_x86) {
$ext = "x86"
} elseif($exists_x64) {
$ext = "x64"
}
if($ext) {
$resulting_filename = "$prefix-$version-Build-$build_number-$ext.zip"
if(-not(Test-Path ".\$output_folder"))
{
echo "Creating .\$output_folder"
New-Item -Path ".\$output_folder" -ItemType Directory -Force > $null
echo "Done"
}
echo "Archiving '$version_release_dir\' into '.\$output_folder\$resulting_filename'"
Compress-Archive -Path "$version_release_dir\*" -DestinationPath ".\$output_folder\$resulting_filename"
echo "Done"
}
}
}
pause