2024-08-20 02:43:36 +00:00
|
|
|
param (
|
|
|
|
[switch]$testing,
|
|
|
|
[switch]$release,
|
|
|
|
[switch]$output_test,
|
|
|
|
[switch]$build,
|
|
|
|
[switch]$help
|
|
|
|
)
|
|
|
|
|
2024-10-04 22:57:03 +00:00
|
|
|
$script_version = "1.0.1-public"
|
2024-08-20 02:43:36 +00:00
|
|
|
|
|
|
|
Write-Output ""
|
|
|
|
Write-Host "███████╗██╗ ██╗ ██╗███████╗██████╗ ██████╗ ████████╗" -ForegroundColor DarkCyan
|
|
|
|
Write-Host "██╔════╝██║ ██║ ██║██╔════╝██╔══██╗██╔═══██╗╚══██╔══╝" -ForegroundColor DarkCyan
|
|
|
|
Write-Host "█████╗ ██║ ██║ ██║█████╗ ██████╔╝██║ ██║ ██║ " -ForegroundColor DarkCyan
|
|
|
|
Write-Host "██╔══╝ ██║ ██║ ██║██╔══╝ ██╔══██╗██║ ██║ ██║ " -ForegroundColor DarkCyan
|
|
|
|
Write-Host "███████╗███████╗███████╗██║███████╗██████╔╝╚██████╔╝ ██║ " -ForegroundColor DarkCyan
|
|
|
|
Write-Host "╚══════╝╚══════╝╚══════╝╚═╝╚══════╝╚═════╝ ╚═════╝ ╚═╝ " -ForegroundColor DarkCyan
|
|
|
|
Write-Output ""
|
|
|
|
# If you remove this copyright header I will bonk
|
|
|
|
Write-Output "Copyright © 2024 Toastie_t0ast & EllieBotDevs"
|
|
|
|
Write-Output ""
|
|
|
|
Write-Host "Current script version is v$script_version" -ForegroundColor DarkCyan
|
|
|
|
Write-Output ""
|
|
|
|
|
|
|
|
if ($release) {
|
|
|
|
if ($args.Length -eq 0) {
|
|
|
|
Write-Host "Please provide a version string." -ForegroundColor Red
|
|
|
|
|
|
|
|
Write-Output ""
|
|
|
|
Write-Host "Script failed." -ForegroundColor Red
|
|
|
|
Write-Host "Please read the Error above for more information" -ForegroundColor Gray
|
|
|
|
Write-Output ""
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$version = $args[0]
|
|
|
|
Write-Output ""
|
|
|
|
Write-Host "Publishing EllieBot v$version" -Foregroundcolor Green
|
|
|
|
Write-Output ""
|
|
|
|
|
2024-09-24 11:58:51 +00:00
|
|
|
Write-Output ""
|
|
|
|
Write-Output "Compiling the linux-x64 build"
|
2024-08-20 02:43:36 +00:00
|
|
|
Write-Output ""
|
|
|
|
dotnet publish -c Release -r linux-x64 --self-contained -o elliebot-linux-x64 src/EllieBot/EllieBot.csproj
|
|
|
|
Write-Output ""
|
2024-09-24 11:58:51 +00:00
|
|
|
Write-Output "Compiling the linux-arm64 build"
|
|
|
|
Write-Output ""
|
2024-08-20 02:43:36 +00:00
|
|
|
dotnet publish -c Release -r linux-arm64 --self-contained -o elliebot-linux-arm64 src/EllieBot/EllieBot.csproj
|
|
|
|
Write-Output ""
|
2024-09-24 11:58:51 +00:00
|
|
|
Write-Output "Compiling the windows-x64 build"
|
|
|
|
Write-Output ""
|
2024-08-20 02:43:36 +00:00
|
|
|
dotnet publish -c Release -r win-x64 --self-contained -o elliebot-windows-x64 src/EllieBot/EllieBot.csproj
|
|
|
|
Write-Output ""
|
2024-09-24 11:58:51 +00:00
|
|
|
Write-Output "Compiling the windows-arm64 build"
|
|
|
|
Write-Output ""
|
2024-08-20 02:43:36 +00:00
|
|
|
dotnet publish -c Release -r win-arm64 --self-contained -o elliebot-windows-arm64 src/EllieBot/EllieBot.csproj
|
|
|
|
Write-Output ""
|
2024-09-24 11:58:51 +00:00
|
|
|
Write-Output "Compiling the osx-x64 build"
|
|
|
|
Write-Output ""
|
2024-08-20 02:43:36 +00:00
|
|
|
dotnet publish -c Release -r osx-x64 --self-contained -o elliebot-osx-x64 src/EllieBot/EllieBot.csproj
|
|
|
|
Write-Output ""
|
2024-09-24 11:58:51 +00:00
|
|
|
Write-Output "Compiling the osx-arm64 build"
|
|
|
|
Write-Output ""
|
2024-08-20 02:43:36 +00:00
|
|
|
dotnet publish -c Release -r osx-arm64 --self-contained -o elliebot-osx-arm64 src/EllieBot/EllieBot.csproj
|
|
|
|
|
|
|
|
Write-Output ""
|
|
|
|
Write-Output "Preparing the Windows installer build."
|
|
|
|
Write-Output ""
|
|
|
|
|
|
|
|
dotnet clean
|
|
|
|
dotnet restore -f --no-cache -v n
|
|
|
|
dotnet publish -c Release --self-contained --runtime win-x64 /p:Version="$version" src/EllieBot
|
|
|
|
|
|
|
|
Write-Output ""
|
|
|
|
Write-Output "Setting environemt variable"
|
|
|
|
Write-Output ""
|
|
|
|
|
|
|
|
$env:ELLIEBOT_INSTALL_VERSION = $version
|
|
|
|
|
|
|
|
Write-Output ""
|
|
|
|
Write-Output "Compiling installer file"
|
|
|
|
Write-Output ""
|
|
|
|
|
|
|
|
iscc.exe /O+ .\exe_builder.iss
|
|
|
|
|
|
|
|
Write-Output ""
|
|
|
|
Write-Output "Compressing windows build files"
|
|
|
|
Write-Output ""
|
|
|
|
|
|
|
|
Compress-Archive -Path elliebot-windows-x64/ "$version-windows-x64-build.zip"
|
|
|
|
Compress-Archive -Path elliebot-windows-arm64/ "$version-windows-arm64-build.zip"
|
|
|
|
|
|
|
|
Write-Output ""
|
|
|
|
Write-Output "Moving the installer file to the directory this script is in"
|
|
|
|
Write-Output ""
|
|
|
|
|
|
|
|
Move-Item ellie-installers/$version/ellie-setup-$version.exe ellie-setup-$version.exe
|
|
|
|
|
|
|
|
Write-Output ""
|
|
|
|
Write-Output "Script finished successfully"
|
|
|
|
Write-Output ""
|
|
|
|
Write-Output "If you wish to build the linux or MacOS builds please run"
|
2024-08-20 02:46:20 +00:00
|
|
|
Write-Output "package.sh in wsl if you are on Windows or in bash (or whatever terminal you use) on linux"
|
2024-08-20 02:43:36 +00:00
|
|
|
Write-Output ""
|
|
|
|
Write-Output "If you have any suggestions on how to make this script better please make a suggestion"
|
|
|
|
Write-Output "in our discord @ https://discord.gg/etQdZxSyEH and in the 📚・suggestions channel"
|
|
|
|
Write-Output ""
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($testing) {
|
|
|
|
if ($args.Length -eq 0) {
|
|
|
|
Write-Host "Please provide a version string." -ForegroundColor Red
|
|
|
|
|
|
|
|
Write-Output ""
|
|
|
|
Write-Host "Script failed." -ForegroundColor Red
|
|
|
|
Write-Host "Please read the Error above for more information" -ForegroundColor Gray
|
|
|
|
Write-Output ""
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$version = $args[0]
|
|
|
|
Write-Output ""
|
|
|
|
Write-Output "Running tests for EllieBot v$version"
|
|
|
|
Write-Output ""
|
|
|
|
dotnet test
|
|
|
|
|
|
|
|
Write-Output ""
|
|
|
|
Write-Output "Script finished successfully"
|
|
|
|
Write-Output ""
|
|
|
|
Write-Output "If you have any suggestions on how to make this script better please make a suggestion"
|
|
|
|
Write-Output "in our discord @ https://discord.gg/etQdZxSyEH and in the 📚・suggestions channel"
|
|
|
|
Write-Output ""
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($output_test) {
|
|
|
|
|
|
|
|
Write-Output ""
|
|
|
|
Write-Output "Compiling a test build of EllieBot"
|
|
|
|
Write-Output ""
|
|
|
|
dotnet publish -c Release -o output/ src/EllieBot/
|
|
|
|
|
|
|
|
Write-Output ""
|
|
|
|
Write-Output "copying creds_example.yml to creds.yml"
|
|
|
|
Write-Output ""
|
|
|
|
Set-Location output
|
|
|
|
|
|
|
|
Copy-Item creds_example.yml creds.yml
|
|
|
|
|
|
|
|
Set-Location ..
|
|
|
|
|
|
|
|
Write-Output ""
|
|
|
|
Write-Output "Script finished successfully"
|
|
|
|
Write-Output ""
|
|
|
|
Write-Output "If you have any suggestions on how to make this script better please make a suggestion"
|
|
|
|
Write-Output "in our discord @ https://discord.gg/etQdZxSyEH and in the 📚・suggestions channel"
|
|
|
|
Write-Output ""
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($build) {
|
|
|
|
|
|
|
|
Write-Output ""
|
|
|
|
Write-Output "Restoring EllieBot"
|
|
|
|
Write-Output ""
|
|
|
|
dotnet restore
|
|
|
|
|
|
|
|
Write-Output ""
|
|
|
|
Write-Output "Building EllieBot"
|
|
|
|
Write-Output ""
|
|
|
|
dotnet build --no-restore -c Release
|
|
|
|
|
|
|
|
Write-Output ""
|
|
|
|
Write-Output "Script finished successfully"
|
|
|
|
Write-Output ""
|
|
|
|
Write-Output "If you have any suggestions on how to make this script better please make a suggestion"
|
|
|
|
Write-Output "in our discord @ https://discord.gg/etQdZxSyEH and in the 📚・suggestions channel"
|
|
|
|
Write-Output ""
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($help) {
|
|
|
|
Write-Output ""
|
|
|
|
Write-Output "Here is a list of switches for this script."
|
|
|
|
Write-Output ""
|
|
|
|
|
|
|
|
Write-Host "Release parameter" -ForegroundColor Green
|
|
|
|
Write-Output "-release"
|
|
|
|
Write-Output ""
|
|
|
|
|
|
|
|
Write-Host "Testing parameter" -ForegroundColor Blue
|
|
|
|
Write-Output "-testing"
|
|
|
|
Write-Output ""
|
|
|
|
|
|
|
|
Write-Host "Output test parameter" -ForegroundColor Yellow
|
|
|
|
Write-Output "-output_test"
|
|
|
|
Write-Output ""
|
|
|
|
|
|
|
|
Write-Host "Build parameter" -ForegroundColor DarkCyan
|
|
|
|
Write-Output "-build"
|
|
|
|
Write-Output ""
|
|
|
|
|
|
|
|
Write-Host "Here is an example" -ForegroundColor Gray
|
|
|
|
Write-Host "build.ps1 -build" -ForegroundColor Gray
|
|
|
|
Write-Output ""
|
|
|
|
}
|