name: Build on: push: tags: - '*.*.*' - '*.*' jobs: patch: runs-on: windows-latest timeout-minutes: 5 steps: - uses: actions/checkout@master - name: Build 5.x run: | $BUILD_DIR = "Sophia Script v" if ($env:GITHUB_REF -eq "refs/heads/master") { $BUILD_DIR += "master" } else { $BUILD_DIR += ${env:GITHUB_REF} -replace "refs/tags/", "" } $ZIP = "$BUILD_DIR.zip" New-Item -Path $BUILD_DIR -ItemType Directory -Force Write-Host $BUILD_DIR Write-Host $ZIP Copy-Item -Path "Sophia\PowerShell 5.1\*" -Destination $BUILD_DIR -Recurse -Force Compress-Archive -Path $BUILD_DIR -DestinationPath $ZIP -Force - name: Build 7.x run: | $BUILD_DIR = "Sophia Script v" if ($env:GITHUB_REF -eq "refs/heads/master") { $BUILD_DIR += "master" } else { $BUILD_DIR += ${env:GITHUB_REF} -replace "refs/tags/", "" } $BUILD_DIR += " PS7.x" $ZIP = "$BUILD_DIR.zip" New-Item -Path $BUILD_DIR -ItemType Directory -Force Write-Host $BUILD_DIR Write-Host $ZIP Copy-Item -Path "Sophia\PowerShell 5.1\*" -Destination $BUILD_DIR -Recurse -Force Copy-Item -Path "Sophia\PowerShell 7.x\*" -Destination $BUILD_DIR -Recurse -Force # Download Microsoft.Windows.SDK.NET.Ref $Parameters = @{ Uri = "https://www.nuget.org/api/v2/package/Microsoft.Windows.SDK.NET.Ref" OutFile = "$PSScriptRoot\microsoft.windows.sdk.net.ref.nupkg" Verbose = [switch]::Present } Invoke-WebRequest @Parameters Rename-Item -Path "$PSScriptRoot\Microsoft.Windows.SDK.NET.Ref.nupkg" -NewName "Microsoft.Windows.SDK.NET.Ref.zip" $Parameters = @{ Path = "$PSScriptRoot\Microsoft.Windows.SDK.NET.Ref.zip" DestinationPath = "$PSScriptRoot\SDK" Force = [switch]::Present Verbose = [switch]::Present } Expand-Archive @Parameters # Download CsWinRT $LatestRelease = (Invoke-RestMethod -Uri "https://api.github.com/repos/microsoft/CsWinRT/releases").tag_name | Select-Object -First 1 $Download = ((Invoke-RestMethod -Uri "https://api.github.com/repos/microsoft/CsWinRT/releases") | Where-Object -FilterScript {$_.tag_name -eq $LatestRelease}).assets | Where-Object -FilterScript {$_.browser_download_url -match "nupkg"} $URL = $Download.browser_download_url $Parameters = @{ Uri = $URL OutFile = "$PSScriptRoot\Microsoft.Windows.CsWinRT.nupkg" Verbose = [switch]::Present } Invoke-WebRequest @Parameters Rename-Item -Path "$PSScriptRoot\Microsoft.Windows.CsWinRT.nupkg" -NewName "Microsoft.Windows.CsWinRT.zip" -Force $Parameters = @{ Path = "$PSScriptRoot\Microsoft.Windows.CsWinRT.zip" DestinationPath = "$PSScriptRoot\CsWinRT" Force = [switch]::Present Verbose = [switch]::Present } Expand-Archive @Parameters New-Item -Path $BUILD_DIR\Libraries -ItemType Directory -Force Copy-Item -Path "$PSScriptRoot\sdk\lib\Microsoft.Windows.SDK.NET.dll" -Destination $BUILD_DIR\Libraries -Recurse -Force Copy-Item -Path "$PSScriptRoot\CsWinRT\lib\net5.0\WinRT.Runtime.dll" -Destination $BUILD_DIR\Libraries -Recurse -Force Compress-Archive -Path $BUILD_DIR -DestinationPath $ZIP -Force Remove-Item -Path "$PSScriptRoot\CsWinRT", "$PSScriptRoot\sdk" -Recurse -Force Remove-Item -Path "$PSScriptRoot\Microsoft.Windows.CsWinRT.zip", "$PSScriptRoot\Microsoft.Windows.SDK.NET.Ref.zip" -Force - name: Build LTSC run: | $BUILD_DIR = "Sophia Script LTSC v" $ModuleVersion = (Import-PowerShellDataFile -Path "Sophia\LTSC\Sophia.psd1").ModuleVersion Write-Host $ModuleVersion $BUILD_DIR += $ModuleVersion $ZIP = "$BUILD_DIR.zip" New-Item -Path $BUILD_DIR -ItemType Directory -Force Write-Host $BUILD_DIR Write-Host $ZIP Copy-Item -Path "Sophia\LTSC\*" -Destination $BUILD_DIR -Recurse -Force Compress-Archive -Path $BUILD_DIR -DestinationPath $ZIP -Force - name: Wrapper run: | $BUILD_DIR = "Sophia Script Wrapper" $ZIP = "$BUILD_DIR.zip" New-Item -Path $BUILD_DIR -ItemType Directory -Force Write-Host $BUILD_DIR Write-Host $ZIP Copy-Item -Path "Wrapper\*" -Destination $BUILD_DIR -Recurse -Force Compress-Archive -Path $BUILD_DIR -DestinationPath $ZIP -Force - name: Upload archives to release uses: svenstaro/upload-release-action@master with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: Sophia*.zip tag: ${{ github.ref }} overwrite: true file_glob: true prerelease: true