- You’re using Travis.
- You using Linux runners.
- You want to generate and publish a Windows installer for your app.
Seems straightforward enough. Just
- install Wine
addons: apt: packages: - wine32 - wine-stable
- install Innosetup
wget -q https://jrsoftware.org/download.php/is.exe wine is.exe /VERYSILENT /NORESTART
- then run it normally
wine "$inno_bin" my_install_script.iss
However, the catch is that Innosetup really want a display for itself, even when installing silently. So, add
services: - xvfb
According to all docs, that should be about enough. Still, it didn’t work for me:
2020-03-03 22:12:41.068 Successfully imported the DLL function. Delay loaded? No 2020-03-03 22:12:41.069 Exception message: 2020-03-03 22:12:41.069 Message box (OK): Error creating window. 2020-03-03 22:12:41.070 User chose -1. 2020-03-03 22:12:41.070 Deinitializing Setup. 2020-03-03 22:12:41.071 Log closed.
After much trial and error, I discovered that Innosetup just would not install on a
language: minimal Bionic runner. Apparently it was still missing some libraries. Setting
language: java in
.travis.yml, however, allowed the build to pass.
Most important are the things they don’t tell you…