diff --git a/CHANGELIST.md b/CHANGELIST.md index 4029a134..f8a91e0f 100644 --- a/CHANGELIST.md +++ b/CHANGELIST.md @@ -1,6 +1,7 @@ ### WIP (xxxx-xx-xx) - Remove debugging lines from build script +- Port build script fixes from BOS ### 3.1.1 (2024-02-20) diff --git a/publish-nix.sh b/publish-nix.sh index eb8ebbb8..812f09a8 100755 --- a/publish-nix.sh +++ b/publish-nix.sh @@ -75,6 +75,15 @@ then do for RUNTIME in "${UI_RUNTIMES[@]}" do + # If we have an invalid combination of framework and runtime + if [[ ! $(echo ${VALID_CROSS_PLATFORM_FRAMEWORKS[@]} | fgrep -w $FRAMEWORK) ]] + then + if [[ $(echo ${VALID_CROSS_PLATFORM_RUNTIMES[@]} | fgrep -w $RUNTIME) ]] + then + continue + fi + fi + # Only .NET 5 and above can publish to a single file if [[ $(echo ${SINGLE_FILE_CAPABLE[@]} | fgrep -w $FRAMEWORK) ]] then diff --git a/publish-win.ps1 b/publish-win.ps1 index 181b1ae0..49075975 100644 --- a/publish-win.ps1 +++ b/publish-win.ps1 @@ -14,15 +14,15 @@ param( [Alias("UseAll")] [switch]$USE_ALL, - [Parameter(Mandatory = $false)] + [Parameter(Mandatory = $false)] [Alias("IncludePrograms")] [switch]$INCLUDE_PROGRAMS, - [Parameter(Mandatory = $false)] + [Parameter(Mandatory = $false)] [Alias("NoBuild")] [switch]$NO_BUILD, - [Parameter(Mandatory = $false)] + [Parameter(Mandatory = $false)] [Alias("NoArchive")] [switch]$NO_ARCHIVE ) @@ -56,102 +56,108 @@ $VALID_CROSS_PLATFORM_RUNTIMES = @('win-arm64', 'linux-x64', 'linux-arm64', 'osx # Only build if requested if (!$NO_BUILD.IsPresent) { - # Restore Nuget packages for all builds - Write-Host "Restoring Nuget packages" - dotnet restore + # Restore Nuget packages for all builds + Write-Host "Restoring Nuget packages" + dotnet restore - # Build UI - foreach ($FRAMEWORK in $UI_FRAMEWORKS) - { - foreach ($RUNTIME in $UI_RUNTIMES) - { - # Only .NET 5 and above can publish to a single file - if ($SINGLE_FILE_CAPABLE -contains $FRAMEWORK) - { - dotnet publish MPF\MPF.csproj -f $FRAMEWORK -r $RUNTIME -c Debug --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true - dotnet publish MPF\MPF.csproj -f $FRAMEWORK -r $RUNTIME -c Release --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true -p:DebugType=None -p:DebugSymbols=false - } - else - { - dotnet publish MPF\MPF.csproj -f $FRAMEWORK -r $RUNTIME -c Debug --self-contained true --version-suffix $COMMIT - dotnet publish MPF\MPF.csproj -f $FRAMEWORK -r $RUNTIME -c Release --self-contained true --version-suffix $COMMIT -p:DebugType=None -p:DebugSymbols=false - } - } - } + # Build UI + foreach ($FRAMEWORK in $UI_FRAMEWORKS) + { + foreach ($RUNTIME in $UI_RUNTIMES) + { + # If we have an invalid combination of framework and runtime + if ($VALID_CROSS_PLATFORM_FRAMEWORKS -notcontains $FRAMEWORK -and $VALID_CROSS_PLATFORM_RUNTIMES -contains $RUNTIME) + { + continue + } - # Build Check - foreach ($FRAMEWORK in $CHECK_FRAMEWORKS) - { - foreach ($RUNTIME in $CHECK_RUNTIMES) - { - # If we have an invalid combination of framework and runtime - if ($VALID_CROSS_PLATFORM_FRAMEWORKS -notcontains $FRAMEWORK -and $VALID_CROSS_PLATFORM_RUNTIMES -contains $RUNTIME) - { - continue - } + # Only .NET 5 and above can publish to a single file + if ($SINGLE_FILE_CAPABLE -contains $FRAMEWORK) + { + dotnet publish MPF\MPF.csproj -f $FRAMEWORK -r $RUNTIME -c Debug --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true + dotnet publish MPF\MPF.csproj -f $FRAMEWORK -r $RUNTIME -c Release --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true -p:DebugType=None -p:DebugSymbols=false + } + else + { + dotnet publish MPF\MPF.csproj -f $FRAMEWORK -r $RUNTIME -c Debug --self-contained true --version-suffix $COMMIT + dotnet publish MPF\MPF.csproj -f $FRAMEWORK -r $RUNTIME -c Release --self-contained true --version-suffix $COMMIT -p:DebugType=None -p:DebugSymbols=false + } + } + } - # Only .NET 5 and above can publish to a single file - if ($SINGLE_FILE_CAPABLE -contains $FRAMEWORK) - { - dotnet publish MPF.Check\MPF.Check.csproj -f $FRAMEWORK -r $RUNTIME -c Debug --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true - dotnet publish MPF.Check\MPF.Check.csproj -f $FRAMEWORK -r $RUNTIME -c Release --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true -p:DebugType=None -p:DebugSymbols=false - } - else - { - dotnet publish MPF.Check\MPF.Check.csproj -f $FRAMEWORK -r $RUNTIME -c Debug --self-contained true --version-suffix $COMMIT - dotnet publish MPF.Check\MPF.Check.csproj -f $FRAMEWORK -r $RUNTIME -c Release --self-contained true --version-suffix $COMMIT -p:DebugType=None -p:DebugSymbols=false - } - } - } + # Build Check + foreach ($FRAMEWORK in $CHECK_FRAMEWORKS) + { + foreach ($RUNTIME in $CHECK_RUNTIMES) + { + # If we have an invalid combination of framework and runtime + if ($VALID_CROSS_PLATFORM_FRAMEWORKS -notcontains $FRAMEWORK -and $VALID_CROSS_PLATFORM_RUNTIMES -contains $RUNTIME) + { + continue + } + + # Only .NET 5 and above can publish to a single file + if ($SINGLE_FILE_CAPABLE -contains $FRAMEWORK) + { + dotnet publish MPF.Check\MPF.Check.csproj -f $FRAMEWORK -r $RUNTIME -c Debug --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true + dotnet publish MPF.Check\MPF.Check.csproj -f $FRAMEWORK -r $RUNTIME -c Release --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true -p:DebugType=None -p:DebugSymbols=false + } + else + { + dotnet publish MPF.Check\MPF.Check.csproj -f $FRAMEWORK -r $RUNTIME -c Debug --self-contained true --version-suffix $COMMIT + dotnet publish MPF.Check\MPF.Check.csproj -f $FRAMEWORK -r $RUNTIME -c Release --self-contained true --version-suffix $COMMIT -p:DebugType=None -p:DebugSymbols=false + } + } + } } # Only create archives if requested if (!$NO_ARCHIVE.IsPresent) { - # Create UI archives - foreach ($FRAMEWORK in $UI_FRAMEWORKS) - { - foreach ($RUNTIME in $UI_RUNTIMES) - { - Set-Location -Path $BUILD_FOLDER\MPF\bin\Debug\${FRAMEWORK}\${RUNTIME}\publish\ - if ($INCLUDE_PROGRAMS.IsPresent) - { - 7z a -tzip $BUILD_FOLDER\MPF_${FRAMEWORK}_${RUNTIME}_debug.zip * - } - else - { - 7z a -tzip -x!Programs\* $BUILD_FOLDER\MPF_${FRAMEWORK}_${RUNTIME}_debug.zip * - } - Set-Location -Path $BUILD_FOLDER\MPF\bin\Release\${FRAMEWORK}\${RUNTIME}\publish\ - if ($INCLUDE_PROGRAMS.IsPresent) - { - 7z a -tzip $BUILD_FOLDER\MPF_${FRAMEWORK}_${RUNTIME}_release.zip * - } - else - { - 7z a -tzip -x!Programs\* $BUILD_FOLDER\MPF_${FRAMEWORK}_${RUNTIME}_release.zip * - } - } - } + # Create UI archives + foreach ($FRAMEWORK in $UI_FRAMEWORKS) + { + foreach ($RUNTIME in $UI_RUNTIMES) + { + Set-Location -Path $BUILD_FOLDER\MPF\bin\Debug\${FRAMEWORK}\${RUNTIME}\publish\ + if ($INCLUDE_PROGRAMS.IsPresent) + { + 7z a -tzip $BUILD_FOLDER\MPF_${FRAMEWORK}_${RUNTIME}_debug.zip * + } + else + { + 7z a -tzip -x!Programs\* $BUILD_FOLDER\MPF_${FRAMEWORK}_${RUNTIME}_debug.zip * + } + Set-Location -Path $BUILD_FOLDER\MPF\bin\Release\${FRAMEWORK}\${RUNTIME}\publish\ + if ($INCLUDE_PROGRAMS.IsPresent) + { + 7z a -tzip $BUILD_FOLDER\MPF_${FRAMEWORK}_${RUNTIME}_release.zip * + } + else + { + 7z a -tzip -x!Programs\* $BUILD_FOLDER\MPF_${FRAMEWORK}_${RUNTIME}_release.zip * + } + } + } - # Create Check archives - foreach ($FRAMEWORK in $CHECK_FRAMEWORKS) - { - foreach ($RUNTIME in $CHECK_RUNTIMES) - { - # If we have an invalid combination of framework and runtime - if ($VALID_CROSS_PLATFORM_FRAMEWORKS -notcontains $FRAMEWORK -and $VALID_CROSS_PLATFORM_RUNTIMES -contains $RUNTIME) - { - continue - } + # Create Check archives + foreach ($FRAMEWORK in $CHECK_FRAMEWORKS) + { + foreach ($RUNTIME in $CHECK_RUNTIMES) + { + # If we have an invalid combination of framework and runtime + if ($VALID_CROSS_PLATFORM_FRAMEWORKS -notcontains $FRAMEWORK -and $VALID_CROSS_PLATFORM_RUNTIMES -contains $RUNTIME) + { + continue + } - Set-Location -Path $BUILD_FOLDER\MPF.Check\bin\Debug\${FRAMEWORK}\${RUNTIME}\publish\ - 7z a -tzip $BUILD_FOLDER\MPF.Check_${FRAMEWORK}_${RUNTIME}_debug.zip * - Set-Location -Path $BUILD_FOLDER\MPF.Check\bin\Release\${FRAMEWORK}\${RUNTIME}\publish\ - 7z a -tzip $BUILD_FOLDER\MPF.Check_${FRAMEWORK}_${RUNTIME}_release.zip * - } - } + Set-Location -Path $BUILD_FOLDER\MPF.Check\bin\Debug\${FRAMEWORK}\${RUNTIME}\publish\ + 7z a -tzip $BUILD_FOLDER\MPF.Check_${FRAMEWORK}_${RUNTIME}_debug.zip * + Set-Location -Path $BUILD_FOLDER\MPF.Check\bin\Release\${FRAMEWORK}\${RUNTIME}\publish\ + 7z a -tzip $BUILD_FOLDER\MPF.Check_${FRAMEWORK}_${RUNTIME}_release.zip * + } + } - # Reset the directory - Set-Location -Path $PSScriptRoot + # Reset the directory + Set-Location -Path $PSScriptRoot }