Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build Windows portable and installer packages on CI #13578

Merged

Conversation

HertzDevil
Copy link
Contributor

This PR adds an Inno Setup script, and builds both the portable and installer packages in the Windows GitHub workflow. Resolves #13426.

The portable package is built in release mode and comes with crystal.pdb; otherwise, it is identical to the unofficial package we are already distributing. The Inno Setup script expects this portable package to be available at etc\win-ci\portable, and then builds an installer from it, plus samples and offline docs.

The installer will instruct the user to install the MSVC build tools and/or the Windows SDK manually if they are not detected.

Right now both jobs will unconditionally run on any push or PR, but this is only so that the PR itself and the master branch would build the packages for testing; the jobs will afterwards be restricted to branches named ci/* or release/*. The eventual goal here is to avoid having to rebuild all third-party libraries on every nightly build once these packages are ready.

.github/workflows/win.yml Outdated Show resolved Hide resolved
.github/workflows/win.yml Outdated Show resolved Hide resolved
etc/win-ci/crystal.iss Show resolved Hide resolved
etc/win-ci/crystal.iss Show resolved Hide resolved
etc/win-ci/crystal.iss Outdated Show resolved Hide resolved
etc/win-ci/crystal.iss Show resolved Hide resolved
etc/win-ci/crystal.iss Outdated Show resolved Hide resolved
etc/win-ci/crystal.iss Show resolved Hide resolved
etc/win-ci/crystal.iss Show resolved Hide resolved
@straight-shoota
Copy link
Member

The portable package is built in release mode and comes with crystal.pdb; otherwise, it is identical to the unofficial package we are already distributing.

Both builds steps are basically identical except for one config setting. So it would be great to avoid the duplication of the ~15 steps that are exactly the same in each.
I think a reusable workflow could work great for this.

etc/win-ci/crystal.iss Outdated Show resolved Hide resolved
.github/workflows/win_build_portable.yml Outdated Show resolved Hide resolved
Copy link
Member

@straight-shoota straight-shoota left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❤️

@straight-shoota straight-shoota added this to the 1.9.0 milestone Jun 30, 2023
@straight-shoota straight-shoota merged commit 9b76eb3 into crystal-lang:master Jul 2, 2023
52 checks passed
@HertzDevil HertzDevil deleted the feature/windows-gui-installer branch July 3, 2023 09:17
Blacksmoke16 pushed a commit to Blacksmoke16/crystal that referenced this pull request Dec 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

Official Windows installer
2 participants