mirror of
https://github.com/RaidMax/IW4M-Admin.git
synced 2025-06-07 13:48:00 -05:00
simplify build script for local builds
This commit is contained in:
parent
74ad200b8e
commit
451b25ffb2
1
.gitignore
vendored
1
.gitignore
vendored
@ -247,3 +247,4 @@ launchSettings.json
|
|||||||
*.db
|
*.db
|
||||||
/Data/IW4MAdmin_Migration.db-shm
|
/Data/IW4MAdmin_Migration.db-shm
|
||||||
/Data/IW4MAdmin_Migration.db-wal
|
/Data/IW4MAdmin_Migration.db-wal
|
||||||
|
bundle/
|
@ -73,4 +73,8 @@
|
|||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
|
||||||
|
<Exec Command="if $(ConfigurationName) == Debug powershell.exe $(ProjectDir)BuildScripts\PreBuild.ps1 $(SolutionDir) $(TargetDir)" />
|
||||||
|
</Target>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
param (
|
|
||||||
[string]$OutputDir = $(throw "-OutputDir is required.")
|
|
||||||
)
|
|
||||||
|
|
||||||
$localizations = @("en-US", "ru-RU", "es-EC", "pt-BR", "de-DE")
|
|
||||||
foreach($localization in $localizations)
|
|
||||||
{
|
|
||||||
$url = "http://api.raidmax.org:5000/localization/{0}" -f $localization
|
|
||||||
$filePath = "{0}Localization\IW4MAdmin.{1}.json" -f $OutputDir, $localization
|
|
||||||
$response = Invoke-WebRequest $url -UseBasicParsing
|
|
||||||
Out-File -FilePath $filePath -InputObject $response.Content -Encoding utf8
|
|
||||||
}
|
|
@ -1,17 +0,0 @@
|
|||||||
set SolutionDir=%1
|
|
||||||
set ProjectDir=%2
|
|
||||||
set TargetDir=%3
|
|
||||||
set OutDir=%4
|
|
||||||
set Version=%5
|
|
||||||
|
|
||||||
echo Copying dependency configs
|
|
||||||
copy "%SolutionDir%WebfrontCore\%OutDir%*.deps.json" "%TargetDir%"
|
|
||||||
copy "%SolutionDir%SharedLibraryCore\%OutDir%*.deps.json" "%TargetDir%"
|
|
||||||
|
|
||||||
if not exist "%TargetDir%Plugins" (
|
|
||||||
echo "Making plugin dir"
|
|
||||||
md "%TargetDir%Plugins"
|
|
||||||
)
|
|
||||||
|
|
||||||
xcopy /y "%SolutionDir%Build\Plugins" "%TargetDir%Plugins\"
|
|
||||||
del "%TargetDir%Plugins\SQLite*"
|
|
@ -1,67 +0,0 @@
|
|||||||
set PublishDir=%1
|
|
||||||
set SourceDir=%2
|
|
||||||
SET COPYCMD=/Y
|
|
||||||
|
|
||||||
echo deleting extra runtime files
|
|
||||||
if exist "%PublishDir%\runtimes\linux-arm" powershell Remove-Item -Force -Recurse '%PublishDir%\runtimes\linux-arm'
|
|
||||||
if exist "%PublishDir%\runtimes\linux-arm64" powershell Remove-Item -Force -Recurse '%PublishDir%\runtimes\linux-arm64'
|
|
||||||
if exist "%PublishDir%\runtimes\linux-armel" powershell Remove-Item -Force -Recurse '%PublishDir%\runtimes\linux-armel'
|
|
||||||
if exist "%PublishDir%\runtimes\osx" powershell Remove-Item -Force -Recurse '%PublishDir%\runtimes\osx'
|
|
||||||
if exist "%PublishDir%\runtimes\osx-x64" powershell Remove-Item -Force -Recurse '%PublishDir%\runtimes\osx-x64'
|
|
||||||
if exist "%PublishDir%\runtimes\win-arm" powershell Remove-Item -Force -Recurse '%PublishDir%\runtimes\win-arm'
|
|
||||||
if exist "%PublishDir%\runtimes\win-arm64" powershell Remove-Item -Force -Recurse '%PublishDir%\runtimes\win-arm64'
|
|
||||||
if exist "%PublishDir%\runtimes\alpine-x64" powershell Remove-Item -Force -Recurse '%PublishDir%\runtimes\alpine-x64'
|
|
||||||
if exist "%PublishDir%\runtimes\linux-musl-x64" powershell Remove-Item -Force -Recurse '%PublishDir%\runtimes\linux-musl-x64'
|
|
||||||
|
|
||||||
echo deleting misc files
|
|
||||||
if exist "%PublishDir%\web.config" del "%PublishDir%\web.config"
|
|
||||||
if exist "%PublishDir%\libman.json" del "%PublishDir%\libman.json"
|
|
||||||
del "%PublishDir%\*.exe"
|
|
||||||
del "%PublishDir%\*.pdb"
|
|
||||||
|
|
||||||
echo setting up default folders
|
|
||||||
if not exist "%PublishDir%\Configuration" md "%PublishDir%\Configuration"
|
|
||||||
move "%PublishDir%\DefaultSettings.json" "%PublishDir%\Configuration\"
|
|
||||||
if not exist "%PublishDir%\Lib\" md "%PublishDir%\Lib\"
|
|
||||||
del "%PublishDir%\Microsoft.CodeAnalysis*.dll" /F /Q
|
|
||||||
move "%PublishDir%\*.dll" "%PublishDir%\Lib\"
|
|
||||||
move "%PublishDir%\*.json" "%PublishDir%\Lib\"
|
|
||||||
move "%PublishDir%\runtimes" "%PublishDir%\Lib\runtimes"
|
|
||||||
move "%PublishDir%\ru" "%PublishDir%\Lib\ru"
|
|
||||||
move "%PublishDir%\de" "%PublishDir%\Lib\de"
|
|
||||||
move "%PublishDir%\pt" "%PublishDir%\Lib\pt"
|
|
||||||
move "%PublishDir%\es" "%PublishDir%\Lib\es"
|
|
||||||
rmdir /Q /S "%PublishDir%\cs"
|
|
||||||
rmdir /Q /S "%PublishDir%\fr"
|
|
||||||
rmdir /Q /S "%PublishDir%\it"
|
|
||||||
rmdir /Q /S "%PublishDir%\ja"
|
|
||||||
rmdir /Q /S "%PublishDir%\ko"
|
|
||||||
rmdir /Q /S "%PublishDir%\pl"
|
|
||||||
rmdir /Q /S "%PublishDir%\pt-BR"
|
|
||||||
rmdir /Q /S "%PublishDir%\tr"
|
|
||||||
rmdir /Q /S "%PublishDir%\zh-Hans"
|
|
||||||
rmdir /Q /S "%PublishDir%\zh-Hant"
|
|
||||||
if exist "%PublishDir%\refs" move "%PublishDir%\refs" "%PublishDir%\Lib\refs"
|
|
||||||
|
|
||||||
echo making start scripts
|
|
||||||
@(echo @echo off && echo @title IW4MAdmin && echo set DOTNET_CLI_TELEMETRY_OPTOUT=1 && echo dotnet Lib\IW4MAdmin.dll && echo pause) > "%PublishDir%\StartIW4MAdmin.cmd"
|
|
||||||
@(echo #!/bin/bash&& echo export DOTNET_CLI_TELEMETRY_OPTOUT=1&& echo dotnet Lib/IW4MAdmin.dll) > "%PublishDir%\StartIW4MAdmin.sh"
|
|
||||||
|
|
||||||
echo copying update scripts
|
|
||||||
copy "%SourceDir%\DeploymentFiles\UpdateIW4MAdmin.ps1" "%PublishDir%\UpdateIW4MAdmin.ps1"
|
|
||||||
copy "%SourceDir%\DeploymentFiles\UpdateIW4MAdmin.sh" "%PublishDir%\UpdateIW4MAdmin.sh"
|
|
||||||
|
|
||||||
echo moving front-end library dependencies
|
|
||||||
if not exist "%PublishDir%\wwwroot\font" mkdir "%PublishDir%\wwwroot\font"
|
|
||||||
move "WebfrontCore\wwwroot\lib\open-iconic\font\fonts\*.*" "%PublishDir%\wwwroot\font\"
|
|
||||||
if exist "%PublishDir%\wwwroot\lib" rd /s /q "%PublishDir%\wwwroot\lib"
|
|
||||||
if not exist "%PublishDir%\wwwroot\css" mkdir "%PublishDir%\wwwroot\css"
|
|
||||||
move "WebfrontCore\wwwroot\css\global.min.css" "%PublishDir%\wwwroot\css\global.min.css"
|
|
||||||
if not exist "%PublishDir%\wwwroot\js" mkdir "%PublishDir%\wwwroot\js"
|
|
||||||
move "%SourceDir%\WebfrontCore\wwwroot\js\global.min.js" "%PublishDir%\wwwroot\js\global.min.js"
|
|
||||||
if not exist "%PublishDir%\wwwroot\images" mkdir "%PublishDir%\wwwroot\images"
|
|
||||||
xcopy "%SourceDir%\WebfrontCore\wwwroot\images" "%PublishDir%\wwwroot\images" /E /H /C /I
|
|
||||||
|
|
||||||
|
|
||||||
echo setting permissions...
|
|
||||||
cacls "%PublishDir%" /t /e /p Everyone:F
|
|
@ -1,6 +0,0 @@
|
|||||||
set SolutionDir=%1
|
|
||||||
set ProjectDir=%2
|
|
||||||
set TargetDir=%3
|
|
||||||
|
|
||||||
echo D | xcopy "%SolutionDir%Plugins\ScriptPlugins\*.js" "%TargetDir%Plugins" /y
|
|
||||||
powershell -File "%ProjectDir%BuildScripts\DownloadTranslations.ps1" %TargetDir%
|
|
59
Application/BuildScripts/PreBuild.ps1
Normal file
59
Application/BuildScripts/PreBuild.ps1
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
param ( [string]$SolutionDir, [string]$OutputDir )
|
||||||
|
|
||||||
|
if (-not (Test-Path "$SolutionDir/WebfrontCore/wwwroot/font")) {
|
||||||
|
Write-Output "restoring web dependencies"
|
||||||
|
dotnet tool install Microsoft.Web.LibraryManager.Cli --global
|
||||||
|
Set-Location "$SolutionDir/WebfrontCore"
|
||||||
|
libman restore
|
||||||
|
Set-Location $SolutionDir
|
||||||
|
Copy-Item -Recurse -Force -Path "$SolutionDir/WebfrontCore/wwwroot/lib/open-iconic/font/fonts" "$SolutionDir/WebfrontCore/wwwroot/font"
|
||||||
|
}
|
||||||
|
|
||||||
|
if (-not (Test-Path "$SolutionDir/WebfrontCore/wwwroot/lib/open-iconic/font/css/open-iconic-bootstrap-override.scss")) {
|
||||||
|
Write-Output "load external resources"
|
||||||
|
New-Item -ItemType Directory -Force -Path "$SolutionDir/WebfrontCore/wwwroot/lib/open-iconic/font/css"
|
||||||
|
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/iconic/open-iconic/master/font/css/open-iconic-bootstrap.scss" -OutFile "$SolutionDir/WebfrontCore/wwwroot/lib/open-iconic/font/css/open-iconic-bootstrap-override.scss"
|
||||||
|
(Get-Content "$SolutionDir/WebfrontCore/wwwroot/lib/open-iconic/font/css/open-iconic-bootstrap-override.scss") -replace '../fonts/', '/font/' | Set-Content "$SolutionDir/WebfrontCore/wwwroot/lib/open-iconic/font/css/open-iconic-bootstrap-override.scss"
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Output "compiling scss files"
|
||||||
|
|
||||||
|
dotnet tool install Excubo.WebCompiler --global
|
||||||
|
webcompiler -r "$SolutionDir/WebfrontCore/wwwroot/css/src" -o WebfrontCore/wwwroot/css/ -m disable -z disable
|
||||||
|
webcompiler "$SolutionDir/WebfrontCore/wwwroot/lib/open-iconic/font/css/open-iconic-bootstrap-override.scss" -o "$SolutionDir/WebfrontCore/wwwroot/css/" -m disable -z disable
|
||||||
|
|
||||||
|
if (-not (Test-Path "$SolutionDir/bundle/dotnet-bundle.dll")) {
|
||||||
|
New-Item -ItemType Directory -Force -Path "$SolutionDir/bundle"
|
||||||
|
Write-Output "getting dotnet bundle"
|
||||||
|
Invoke-WebRequest -Uri "https://raidmax.org/IW4MAdmin/res/dotnet-bundle.zip" -OutFile "$SolutionDir/bundle/dotnet-bundle.zip"
|
||||||
|
Write-Output "unzipping download"
|
||||||
|
Expand-Archive -Path "$SolutionDir/bundle/dotnet-bundle.zip" -DestinationPath "$SolutionDir/bundle" -Force
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Output "executing dotnet-bundle"
|
||||||
|
Set-Location "$SolutionDir/bundle"
|
||||||
|
dotnet "dotnet-bundle.dll" clean "$SolutionDir/WebfrontCore/bundleconfig.json"
|
||||||
|
dotnet "dotnet-bundle.dll" "$SolutionDir/WebfrontCore/bundleconfig.json"
|
||||||
|
Set-Location $SolutionDir
|
||||||
|
|
||||||
|
New-Item -ItemType Directory -Force -Path "$SolutionDir/BUILD/Plugins"
|
||||||
|
Write-Output "building plugins"
|
||||||
|
Set-Location "$SolutionDir/Plugins"
|
||||||
|
Get-ChildItem -Recurse -Filter *.csproj | ForEach-Object { dotnet publish $_.FullName -o "$SolutionDir/BUILD/Plugins" --no-restore }
|
||||||
|
Set-Location $SolutionDir
|
||||||
|
|
||||||
|
if (-not (Test-Path "$OutputDir/Localization")) {
|
||||||
|
Write-Output "downloading translations"
|
||||||
|
New-Item -ItemType Directory -Force -Path "$OutputDir/Localization"
|
||||||
|
$localizations = @("en-US", "ru-RU", "es-EC", "pt-BR", "de-DE")
|
||||||
|
foreach ($localization in $localizations) {
|
||||||
|
$url = "https://master.iw4.zip/localization/$localization"
|
||||||
|
$filePath = "$OutputDir/Localization/IW4MAdmin.$localization.json"
|
||||||
|
Invoke-WebRequest -Uri $url -OutFile $filePath -UseBasicParsing
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Output "copying plugins to build dir"
|
||||||
|
New-Item -ItemType Directory -Force -Path "$OutputDir/Plugins"
|
||||||
|
Copy-Item -Recurse -Force -Path "$SolutionDir/BUILD/Plugins/*.dll" -Destination "$OutputDir/Plugins/"
|
||||||
|
Copy-Item -Recurse -Force -Path "$SolutionDir/Plugins/ScriptPlugins/*.js" -Destination "$OutputDir/Plugins/"
|
63
Application/BuildScripts/PreBuild.sh
Normal file
63
Application/BuildScripts/PreBuild.sh
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
SolutionDir="$1"
|
||||||
|
OutputDir="$2"
|
||||||
|
export PATH="$PATH:~/.dotnet/tools"
|
||||||
|
|
||||||
|
if [ ! -d "$SolutionDir/WebfrontCore/wwwroot/lib/font" ]; then
|
||||||
|
echo restoring web dependencies
|
||||||
|
dotnet tool install Microsoft.Web.LibraryManager.Cli --global
|
||||||
|
cd "$SolutionDir/WebfrontCore" || exit
|
||||||
|
libman restore
|
||||||
|
cd "$SolutionDir" || exit
|
||||||
|
cp -r "$SolutionDir/WebfrontCore/wwwroot/lib/open-iconic/font/fonts" "$SolutionDir/WebfrontCore/wwwroot/font"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f "$SolutionDir/WebfrontCore/wwwroot/lib/open-iconic/font/css/open-iconic-bootstrap-override.scss" ]; then
|
||||||
|
echo load external resources
|
||||||
|
mkdir -p "$SolutionDir/WebfrontCore/wwwroot/lib/open-iconic/font/css"
|
||||||
|
curl -o "$SolutionDir/WebfrontCore/wwwroot/lib/open-iconic/font/css/open-iconic-bootstrap-override.scss" https://raw.githubusercontent.com/iconic/open-iconic/master/font/css/open-iconic-bootstrap.scss
|
||||||
|
sed -i 's#../fonts/#/font/#g' "$SolutionDir/WebfrontCore/wwwroot/lib/open-iconic/font/css/open-iconic-bootstrap-override.scss"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo compiling scss files
|
||||||
|
|
||||||
|
dotnet tool install Excubo.WebCompiler --global
|
||||||
|
webcompiler -r "$SolutionDir/WebfrontCore/wwwroot/css/src" -o "$SolutionDir/WebfrontCore/wwwroot/css/" -m disable -z disable
|
||||||
|
webcompiler "$SolutionDir/WebfrontCore/wwwroot/lib/open-iconic/font/css/open-iconic-bootstrap-override.scss" -o "$SolutionDir/WebfrontCore/wwwroot/css/" -m disable -z disable
|
||||||
|
|
||||||
|
if [ ! -f "$SolutionDir/bundle/dotnet-bundle.dll" ]; then
|
||||||
|
mkdir -p "$SolutionDir/bundle"
|
||||||
|
echo getting dotnet bundle
|
||||||
|
curl -o "$SolutionDir/bundle/dotnet-bundle.zip" https://raidmax.org/IW4MAdmin/res/dotnet-bundle.zip
|
||||||
|
echo unzipping download
|
||||||
|
unzip "$SolutionDir/bundle/dotnet-bundle.zip" -d "$SolutionDir/bundle"
|
||||||
|
fi
|
||||||
|
echo executing dotnet-bundle
|
||||||
|
cd "$SolutionDir/bundle" || exit
|
||||||
|
dotnet dotnet-bundle.dll clean "$SolutionDir/WebfrontCore/bundleconfig.json"
|
||||||
|
dotnet dotnet-bundle.dll "$SolutionDir/WebfrontCore/bundleconfig.json"
|
||||||
|
cd "$SolutionDir" || exit
|
||||||
|
|
||||||
|
mkdir -p "$SolutionDir/BUILD/Plugins"
|
||||||
|
echo building plugins
|
||||||
|
cd "$SolutionDir/Plugins" || exit
|
||||||
|
find . -name "*.csproj" -print0 | xargs -0 -I {} dotnet publish {} -o "$SolutionDir/BUILD/Plugins" --no-restore
|
||||||
|
cd "$SolutionDir" || exit
|
||||||
|
|
||||||
|
if [ ! -d "$OutputDir/Localization" ]; then
|
||||||
|
echo downloading translations
|
||||||
|
mkdir -p "$OutputDir/Localization"
|
||||||
|
localizations=("en-US" "ru-RU" "es-EC" "pt-BR" "de-DE")
|
||||||
|
for localization in "${localizations[@]}"
|
||||||
|
do
|
||||||
|
url="https://master.iw4.zip/localization/$localization"
|
||||||
|
filePath="$OutputDir/Localization/IW4MAdmin.$localization.json"
|
||||||
|
curl -s "$url" -o "$filePath"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo copying plugins to buld dir
|
||||||
|
mkdir -p "$OutputDir/Plugins"
|
||||||
|
cp -r "$SolutionDir/BUILD/Plugins/*.dll" "$OutputDir/Plugins/"
|
||||||
|
cp -r "$SolutionDir/Plugins/ScriptPlugins/*.js" "$OutputDir/Plugins/"
|
@ -1,14 +0,0 @@
|
|||||||
param (
|
|
||||||
[string]$PublishDir = $(throw "-PublishDir is required.")
|
|
||||||
)
|
|
||||||
|
|
||||||
md -Force ("{0}\Localization" -f $PublishDir)
|
|
||||||
|
|
||||||
$localizations = @("en-US", "ru-RU", "es-EC", "pt-BR", "de-DE")
|
|
||||||
foreach($localization in $localizations)
|
|
||||||
{
|
|
||||||
$url = "http://api.raidmax.org:5000/localization/{0}" -f $localization
|
|
||||||
$filePath = "{0}\Localization\IW4MAdmin.{1}.json" -f $PublishDir, $localization
|
|
||||||
$response = Invoke-WebRequest $url -UseBasicParsing
|
|
||||||
Out-File -FilePath $filePath -InputObject $response.Content -Encoding utf8
|
|
||||||
}
|
|
@ -6,7 +6,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Plugins", "Plugins", "{26E8
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8C8F3945-0AEF-4949-A1F7-B18E952E50BC}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8C8F3945-0AEF-4949-A1F7-B18E952E50BC}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
DeploymentFiles\PostPublish.ps1 = DeploymentFiles\PostPublish.ps1
|
|
||||||
README.md = README.md
|
README.md = README.md
|
||||||
version.txt = version.txt
|
version.txt = version.txt
|
||||||
DeploymentFiles\UpdateIW4MAdmin.ps1 = DeploymentFiles\UpdateIW4MAdmin.ps1
|
DeploymentFiles\UpdateIW4MAdmin.ps1 = DeploymentFiles\UpdateIW4MAdmin.ps1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user