HiveBrain v1.2.0
Get Started
← Back to all entries
snippetMinor

How to automate installation of Windows installer on Appveyor CI?

Submitted by: @import:stackexchange-devops··
0
Viewed 0 times
appveyorinstallerautomateinstallationwindowshow

Problem

I've the installer in EXE format (mt5setup.exe) and I'd like to download it and automate the installation process on Appveyor CI. On Linux I would normally use xdotool.

Since this installer doesn't have any silent flags to use, how can I automate the installation process headlessly?

Solution

The installation of Windows application can be automated using AutoHotkey (AHK), similar as Winetricks does this for all common apps which support.

Here is example of AHK script which aims to install mentioned application:

Run, mt5setup.exe
WinWait, MetaTrader 5 Setup
ControlClick, Button1
Sleep 100
ControlClick, Button3
WinWait, MetaTrader 5 Setup, Installation successfully completed
ControlClick, Button4
Process, Wait, terminal.exe
Process, Close, terminal.exe


To integrate it with CI, AHK needs to be installed by downloading ZIP file, uncompressing it and passing the above AHK script. Suggested appveyor.yml file:

install:
- curl -sLo https://www.metatrader5.com/en/download
- curl -sLo http://www.autohotkey.com/download/AutoHotkey104805.zip
- unzip *.zip
before_test:
- dir
test_script:
- AutoHotkey.exe install.ahk
build: off
platform: x86


where install.ahk is the file to contain above AHK script which can be dynamically generated or downloaded from some repository.

Code Snippets

Run, mt5setup.exe
WinWait, MetaTrader 5 Setup
ControlClick, Button1
Sleep 100
ControlClick, Button3
WinWait, MetaTrader 5 Setup, Installation successfully completed
ControlClick, Button4
Process, Wait, terminal.exe
Process, Close, terminal.exe
install:
- curl -sLo https://www.metatrader5.com/en/download
- curl -sLo http://www.autohotkey.com/download/AutoHotkey104805.zip
- unzip *.zip
before_test:
- dir
test_script:
- AutoHotkey.exe install.ahk
build: off
platform: x86

Context

StackExchange DevOps Q#58, answer score: 4

Revisions (0)

No revisions yet.