mirror of https://github.com/containers/podman.git
				
				
				
			
				
					
						
							This is a followup of https://github.com/containers/podman/pull/26048 It fixes `process-release.ps1` that was always looking for the amd64 release zip file, even if `$env:PODMAN_ARCH` was set to arm64. With this fix it looks for the right zip file. It fixes `winmake.ps1` that, when the `-arch` param was not passed, set `$env:PODMAN_ARCH` to the empty string instead of the local `$env:GOARCH`. Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>  | 
			||
|---|---|---|
| .. | ||
| resources | ||
| README.md | ||
| build.ps1 | ||
| burn.wxs | ||
| check.ps1 | ||
| podman-setup.wixproj | ||
| podman-theme.wxl | ||
| podman-theme.xml | ||
| podman-ui.wxs | ||
| podman.sln | ||
| podman.wixproj | ||
| podman.wxs | ||
| process-release.ps1 | ||
| test-installer.ps1 | ||
| utils.ps1 | ||
| welcome-install-dlg.wxs | ||
		
			
				
				README.md
			
		
		
			
			
		
	
	Windows Installer Build
Instructions [have moved here](Build and test the Podman Windows installer](#build-and-test-the-podman-windows-installer)).
How to run a full tests scenarios
Manual tests to validate changes the wxs files or a WiX upgrade.
Preparation
- checkout previous release tag (e.g. 5.3.0)
git fetch --all --tags --prune && git tag --list v5.* && git checkout tags/v5.3.0 - make the installer
./winmake podman && ./winmake docs && ./winmake win-gvproxy && ./winmake installer - checkout tag 
v5.3.1make the installer./winmake podman && ./winmake docs && ./winmake win-gvproxy && ./winmake installer - get the 
v5.3.1msi product id (with superorca) - checkout the main branch and change the product id on 
podman.wxsto matchv5.3.1product id - set 
$env:V531_SETUP_EXE_PATHand make current and next installer$env:V531_SETUP_EXE_PATH=<path> && ./winmake podman && ./winmake docs && ./winmake win-gvproxy && ./winmake installer && ./winmake installer 9.9.9 - patch installertest to make sure it doesn't download the setup.exe from internet but uses the one just built
 
Run the tests
- Uninstall the virtualization providers (WSL and Hyper-V) using the "Windows Features" app
 - Run installtest for both 
wslandhyperv(as an admin) 
.\contrib\win-installer\test-installer.ps1 `
    -scenario all `
    -setupExePath ".\contrib\win-installer\podman-5.4.0-dev-setup.exe" `
    -previousSetupExePath ".\contrib\win-installer\podman-5.3.0-dev-setup.exe" `
    -nextSetupExePath ".\contrib\win-installer\podman-9.9.9-dev-setup.exe" `
    -v531SetupExePath ".\contrib\win-installer\podman-5.3.1-dev-setup.exe" `
    -provider hyperv
- Manually test the upgrade "from v5.3.1 to current to next"
 
contrib\win-installer\podman-5.3.1-dev-setup.exe /install /log contrib\win-installer\podman-setup-531.log
contrib\win-installer\podman-5.4.0-dev-setup.exe /install /log contrib\win-installer\podman-setup-540.log
contrib\win-installer\podman-9.9.9-dev-setup.exe /install /log contrib\win-installer\podman-setup-999.log
contrib\win-installer\podman-9.9.9-dev-setup.exe /x /log contrib\win-installer\podman-uninstall-999.log
- manually run the current installer with the option to install wsl and confirm it reboots and install both podman and wsl
 - manually run the current installer with the option to install hyperv and confirm it reboots and install both podman and wsl
 - run installtest for both wsl and hyperv
 - manually run the current installer with the option to install wsl and confirm it doesn't reboot
 - manually run the current installer with the option to install hyperv and confirm it doesn't reboot
 
retrieve installed podman msi package information
$Installer = New-Object -ComObject WindowsInstaller.Installer;
$InstallerProducts = $Installer.ProductsEx("", "", 7);
$InstalledProducts = ForEach($Product in $InstallerProducts){
    [PSCustomObject]@{ProductCode = $Product.ProductCode();
                      LocalPackage = $Product.InstallProperty("LocalPackage");
                      VersionString = $Product.InstallProperty("VersionString");
                      ProductName = $Product.InstallProperty("ProductName")
                      }
};
$InstalledProducts | Where-Object {$_.ProductName -match "podman"}
and uninstall it with msiexec /x "{<product-code>}"