Skip to content

Make MSUpdate w11lt2464 by @xrgzs - UUP - Multi #737

Make MSUpdate w11lt2464 by @xrgzs - UUP - Multi

Make MSUpdate w11lt2464 by @xrgzs - UUP - Multi #737

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
# . "C:\Program Files\Cloudflare\Cloudflare WARP\warp-cli.exe" registration new
# . "C:\Program Files\Cloudflare\Cloudflare WARP\warp-cli.exe" connect
# # Add a loop to wait for the status to be connected
# for ($attemptCount = 0; $attemptCount -lt 10; $attemptCount++) {
# $output = . "C:\Program Files\Cloudflare\Cloudflare WARP\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: |
# if (Test-Path "C:\Program Files\Cloudflare\Cloudflare WARP\warp-cli.exe") {
# try {
# . "C:\Program Files\Cloudflare\Cloudflare WARP\warp-cli.exe" disconnect
# }
# catch {
# Write-Warning "Failed to disconnect Cloudflare WARP"
# }
# }
- 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
if (-not (Test-Path ".\$($json.name)")) {
throw "File not found!"
}
# upload iso
Write-Host "Uploading $(Resolve-Path $json.name) to ${{ vars.RCLONE_PATH }}\$($json.os_ver)\$($json.os_release)\$($json.os_version)..."
.\bin\rclone.exe copy "$(Resolve-Path $json.name)" "${{ vars.RCLONE_PATH }}\$($json.os_ver)\$($json.os_release)\$($json.os_version)" --progress
# upload json
Write-Host "Uploading $(Resolve-Path $_.FullName) to ${{ vars.RCLONE_PATH }}\$($json.os_ver)\$($json.os_release)\$($json.os_version)..."
.\bin\rclone.exe copy "$(Resolve-Path $_.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) {
Write-Host "Uploading $(Resolve-Path $_.FullName) to ${{ vars.RCLONE_PATH }}\$($json.os_ver)\$($json.os_release)\latest_$($json.os_arch).json..."
.\bin\rclone.exe copyto "$(Resolve-Path $_.FullName)" "${{ vars.RCLONE_PATH }}\$($json.os_ver)\$($json.os_release)\latest_$($json.os_arch).json" --progress
}
}