ci: add windows installer
Description
This MR uses InnoSetup to create an installer from the glab.exe
for x86_64 windows. Then it lets goreleaser
release the installer.
The key idea is that we use a separate job to build Windows x86_64
binary - build_windows
. Then we wrap this binary in an installer using windows_installer
job. And then the release
job picks it up and the changed gorleleaser
configuration releases the content of bin
folder.
Related Issues
Part of #1124 (closed)
How has this been tested?
I tested that the release job works: https://gitlab.com/viktomas/cli/-/pipelines/709343772
I tested using the EXE installer on a Windows computer, and it worked. But because the installer was not signed, I had to wait for Avast antivirus to scan it, and I had to say I wanted to install it even though it was from an unknown developer.
Fun fact, this took me 31 commits to debug even though it's ~30 lines of config in the end.
Types of changes
-
Bug fix (non-breaking change which fixes an issue) -
New feature (non-breaking change which adds functionality) -
Breaking change (fix or feature that would cause existing functionality to change) -
Documentation -
Chore (Related to CI or Packaging to platforms) -
CI