A GitHub Actions workflow that builds Windows ISOs from UUP (Unified Update Platform) files. It downloads UUP files via the UUP dump API, converts them to a bootable ISO with integrated updates, and uploads split archives to GitHub Releases.
- Windows 11 — Latest builds from Retail, ReleasePreview, Beta, Dev, or Canary channels
- Windows 10 — Latest 22H2 Feature Update (with ESU patches)
- Windows Server — Windows Server 2025 (24H2)
- Fetches the latest builds from UUP dump (always uses Feature Updates, never Cumulative Updates)
- Integrates cumulative updates into the image
- Includes all pre-installed Microsoft Store apps (Windows Terminal, Calculator, Photos, etc.)
- Runs DISM component cleanup and ResetBase for smaller images
- Integrates .NET Framework 3.5
- Optional driver integration via URL at build time
- Splits the final ISO into 1.9 GB 7z parts for GitHub Releases
- Fully automated — no manual interaction required
- Fork this repository
- Go to the Actions tab and enable workflows
- Click "Build Windows ISO" → "Run workflow"
- Select your parameters:
| Parameter | Options | Default | Notes |
|---|---|---|---|
| Product | Windows 11, Windows 10, Windows Server | Windows 11 | |
| Channel | Retail, ReleasePreview, Beta, Dev, Canary | Retail | Windows 11 only |
| Milestone | 25H2, 24H2 | 25H2 | Windows 11 Retail/RP only |
| Architecture | amd64, arm64 | amd64 | |
| Language | Free text | en-us | e.g., zh-cn, de-de |
| Edition | PROFESSIONAL, CORE, SERVERSTANDARD, etc. | PROFESSIONAL | Client editions for Win10/11; Server editions for Server |
| Drivers URL | URL to a zip file | (empty) | Optional, see Driver Integration |
- Wait for the workflow to complete (~1-3 hours)
- Download the split 7z files from the Releases page
Download all .7z.xxx files to the same folder, then extract:
7z x <filename>.7z.001
This produces the full bootable ISO file.
You can integrate hardware drivers into the ISO by providing a URL to a zip file when triggering the workflow. The zip is downloaded at build time and is not stored in the repository, so forked repos stay clean.
- Download the template zip from
drivers-template.zipincluded in this repository - Place your driver files into the appropriate subfolder:
| Folder | Injected into | Use case |
|---|---|---|
OS/ |
install.wim only |
Most hardware drivers (GPU, audio, chipset, etc.) |
WinPE/ |
boot.wim / winre.wim only |
Drivers needed during installation (storage controllers, NIC) |
ALL/ |
All images | Drivers needed everywhere |
- Each driver must be a complete INF driver package (
.inf+.sys+.catand any other referenced files). Only signed drivers are accepted. - Subdirectory nesting is fine — DISM scans recursively.
Example structure inside the zip:
OS/
gpu-driver/
nvidia.inf
nvidia.sys
nvidia.cat
WinPE/
nvme-controller/
stornvme.inf
stornvme.sys
stornvme.cat
DriverStoreExplorer (RAPR) is a handy open-source tool for browsing and exporting drivers from the Windows Driver Store. You can use it to select and export specific drivers, then organize the exported folders into the OS/ or WinPE/ structure described above.
- Upload your zip file to any publicly accessible URL
- When triggering the workflow, paste the URL into the Drivers URL field
- The workflow will download, extract, and integrate the drivers automatically
temp.sh is a convenient no-signup temporary file hosting service (4 GB limit, files expire after 3 days). Upload with one command:
curl -F "file=@drivers.zip" https://temp.sh/uploadThe returned URL can be pasted directly into the Drivers URL field. GitHub Release assets, cloud storage direct links, and other file hosting services also work.
If the field is left empty, no drivers are integrated — same as the default behavior.
- Query — Calls the UUP dump API to find the latest matching build and get download URLs
- Download — Uses aria2c with multi-connection downloads to fetch UUP files
- Convert — Uses abbodi1406's uup-converter-wimlib to:
- Extract ESD files to WIM format
- Mount images and apply updates with DISM
- Run component cleanup with
/ResetBase - Enable .NET Framework 3.5
- Create bootable ISO with cdimage
- Split & Upload — Splits the ISO into 1.9 GB 7z volumes and uploads to GitHub Releases
Uses windows-2022 runners which provide ~240 GB total disk space across C: and D: drives. The build process uses the D: drive for all working files.
- UUP dump — API for finding and downloading UUP files
- abbodi1406/BatUtil — UUP to ISO converter
See LICENSE.