Skip to content

Make MSUpdate w1123h2a64 by @xrgzs - UUP - Multi #606

Make MSUpdate w1123h2a64 by @xrgzs - UUP - Multi

Make MSUpdate w1123h2a64 by @xrgzs - UUP - Multi #606

Workflow file for this run

name: MSUpdate
run-name: Make MSUpdate ${{ inputs.makeversion }} by @${{ github.actor }} ${{ inputs.UpdateFromUUP == true && '- UUP' || '' }} ${{ inputs.MultiEdition == true && '- Multi' || ''}} ${{ inputs.SkipCheck == true && '- SkipCheck' || ''}}
on:
workflow_dispatch:
inputs:
makeversion:
description: '选择制作的系统版本'
required: true
type: choice
options:
- w1124h264
- w1124h2a64
- w1123h264
- w1123h2a64
- w1022h264
- w1022h2a64
- w1022h232
- w11lt2464
- w11lt24a64
- w10lt2164
- w10lt2132
- w10lt1964
- w10lt1932
- w10lt1664
- w10lt1632
UpdateFromUUP:
description: '从UUPDUMP获取更新(1809+)'
required: false
default: true
type: boolean
MultiEdition:
description: '转换多版本(LTSC勿选)'
required: false
default: true
type: boolean
SkipCheck:
description: '跳过硬件检测(Win11)'
required: false
default: false
type: boolean
jobs:
msupdate:
runs-on: windows-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Change DNS Server
shell: pwsh
run: |
$newDnsServers = @('1.1.1.1', '8.8.8.8')
$networkAdapters = Get-NetAdapter | Where-Object { $_.Status -eq 'Up' }
foreach ($adapter in $networkAdapters) {
Set-DnsClientServerAddress -InterfaceIndex $adapter.ifIndex -ResetServerAddresses
Set-DnsClientServerAddress -InterfaceIndex $adapter.ifIndex -ServerAddresses $newDnsServers
}
ipconfig /flushdns
- name: Install Cloudflare WRAP
shell: pwsh
run: |
Write-Host "installing Cloudflare WARP..."
Invoke-WebRequest -Uri "https://1111-releases.cloudflareclient.com/win/latest" -OutFile "C:\cfwarp.msi"
Start-Process "msiexec.exe" -ArgumentList "/i C:\cfwarp.msi /qn" -Wait
Set-Location "C:\Program Files\Cloudflare\Cloudflare WARP"
.\warp-cli.exe registration new
.\warp-cli.exe connect
# Add a loop to wait for the status to be connected
for ($attemptCount = 0; $attemptCount -lt 10; $attemptCount++) {
$output = .\warp-cli.exe status
Write-Host $output
if ($output -like "*Status update: Connected*") {
break
}
Start-Sleep -Seconds 5 # Wait for 5 seconds before checking again
}
if ($attemptCount -eq 10) {
Write-Host "Failed to connect after 10 attempts."
exit 1 # Exit with an error code
}
- name: Big Task
shell: pwsh
run: |
$MakeVersion = [string] "${{ inputs.MakeVersion }}"
$UpdateFromUUP = [bool] $${{ inputs.UpdateFromUUP }}
$MultiEdition = [bool] $${{ inputs.MultiEdition }}
$SkipCheck = [bool] $${{ inputs.SkipCheck }}
.\msupdate.ps1
- name: Disconnect Cloudflare WRAP
shell: pwsh
run: |
Set-Location "C:\Program Files\Cloudflare\Cloudflare WARP"
.\warp-cli.exe disconnect
- name: Get rclone Config
uses: actions/checkout@v4
with:
repository: ${{ vars.RCLONE_REPO }}
token: ${{ secrets.RCLONE_TOKEN }}
path: bin
- name: Upload ISO to OneDrive
shell: pwsh
run: |
# Installing dependencies
if (-not (Test-Path -Path ".\bin\rclone.conf")) {
Write-Error "rclone conf not found"
}
if (-not (Test-Path -Path ".\bin\rclone.exe")) {
Write-Host "rclone not found, downloading..."
Invoke-WebRequest -Uri 'https://downloads.rclone.org/rclone-current-windows-amd64.zip' -outfile .\temp\rclone.zip
Expand-Archive -Path .\temp\rclone.zip -DestinationPath .\temp\ -Force
Copy-Item -Path .\temp\rclone-*-windows-amd64\rclone.exe -Destination .\bin\rclone.exe
}
# upload to cloud
Get-ChildItem -Path ".\*.json" -File | ForEach-Object {
# read json
$json = Get-Content $_.FullName | Convertfrom-Json
# upload iso
.\bin\rclone.exe copy ".\$($json.name)" "${{ vars.RCLONE_PATH }}\$($json.os_ver)\$($json.os_release)\$($json.os_version)" --progress
# upload json
.\bin\rclone.exe copy "$($_.FullName)" "${{ vars.RCLONE_PATH }}\$($json.os_ver)\$($json.os_release)\$($json.os_version)" --progress
# upload non-skipcheck latest version json
if ($json.msupdate.skipcheck -ne $true) {
.\bin\rclone.exe copyto "$($_.FullName)" "${{ vars.RCLONE_PATH }}\$($json.os_ver)\$($json.os_release)\latest_$($json.os_arch).json" --progress
}
}