Enable MSI building for Windows arm64 #10297
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #10199
Note
Although building on a x64 host will work best - given that WiX 3.14 doesn't have a VS2022 extension for arm64 - I managed to build the MSIs locally on my arm64 machine as well. I tried to trigger a build on a x64 host in my fork, but it obviously fails due to missing code signing credentials.
I was able to build this successfully on my ARM64 device (Surface Pro X) by running these steps:
goreleaserwithwinget install goreleaser --version 1.26.2(since this repo has not upgradedgoreleaserto v2 yet)./script/release --local v2.65.0-dennis --platform windows(this created the .exe and .zip files).shfile and run it to create the MSIs./script releaselogsClick to expand
$ ./script/release --local v2.65.0-dennis --platform windows goreleaser release -f .goreleaser.generated.yml --clean --skip-validate --skip-publish --release-notes=$TMPDIR/tmp.jdHBsQiqqI • starting release... • loading path=.goreleaser.generated.yml • DEPRECATED: --skip-publish was deprecated in favor of --skip=publish, check https://goreleaser.com/deprecations#-skip for more details • DEPRECATED: --skip-validate was deprecated in favor of --skip=validate, check https://goreleaser.com/deprecations#-skip for more details • skipping announce, publish and validate... • loading environment variables • getting and validating git state • couldn't find any tags before "v2.65.0-dennis" • git state commit=c3342cc173a69e4c576c06d29f75b44a21e44ec6 branch=trunk current_tag=v2.65.0-dennis previous_tag= dirty=true • pipe skipped reason=validation is disabled • took: 1s • parsing tag • setting defaults • DEPRECATED: archives.rlcp should not be used anymore, check https://goreleaser.com/deprecations#archivesrlcp for more info • DEPRECATED: archives.rlcp should not be used anymore, check https://goreleaser.com/deprecations#archivesrlcp for more info • DEPRECATED: archives.rlcp should not be used anymore, check https://goreleaser.com/deprecations#archivesrlcp for more info • running before hooks • running hook=echo make manpages GH_VERSION=2.65.0-dennis • running hook=echo make completions • checking distribution directory • setting up metadata • storing release metadata • writing file=dist\metadata.json • loading go mod information • build prerequisites • writing effective config file • writing config=dist\config.yaml • building binaries • building binary=dist\windows_windows_arm64\bin\gh.exe • building binary=dist\windows_windows_amd64_v1\bin\gh.exe • building binary=dist\windows_windows_386\bin\gh.exe • running hook hook=pwsh .\script\sign.ps1 'C:\repos\cli\dist\windows_windows_arm64\bin\gh.exe' Skipping Windows code signing; DLIB_PATH not set • running hook hook=pwsh .\script\sign.ps1 'C:\repos\cli\dist\windows_windows_386\bin\gh.exe' Skipping Windows code signing; DLIB_PATH not set • running hook hook=pwsh .\script\sign.ps1 'C:\repos\cli\dist\windows_windows_amd64_v1\bin\gh.exe' Skipping Windows code signing; DLIB_PATH not set • took: 1m51s • generating changelog • loaded "C:/Users/denni/AppData/Local/Temp/tmp.jdHBsQiqqI", but it is empty • archives • creating archive=dist\gh_2.65.0-dennis_windows_386.zip • creating archive=dist\gh_2.65.0-dennis_windows_arm64.zip • creating archive=dist\gh_2.65.0-dennis_windows_amd64.zip • took: 5s • calculating checksums • storing artifacts metadata • writing file=dist\artifacts.json • you are using deprecated options, check the output above for details • release succeeded after 1m57s • thanks for using goreleaser!MSI logs
Click to expand
Installation results
I was able to run the generated
gh_2.65.0-dennis_windows_arm64.msilocally. The installation succeeded and theghbinary is available:Here's the MSI artifact in case anyone wants to test:
gh_2.65.0-dennis_windows_arm64_msi.zip