-
-
Notifications
You must be signed in to change notification settings - Fork 481
[Tech] Download helper binaries instead of storing them in the repo #3849
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
Conversation
80a60ea
to
5d19d50
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me, I tested it on my intel mac and if fixes the nile error I was seeing too.
Added a few comments but not blockers
We can simply tell it to unpack everything in the `bin` folder, since we already only include the binaries we need We can also use glob patters for the `files` option to include binaries for all architectures. Ideally we should figure out a way to only include the files for the arch we're building, but I don't think EB has an option for that
17f7103
to
5061abe
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good.
If possible add the fallback for ARM64 > x64, otherwise do it in another PR.
Storing Legendary, gogdl, and Nile in this repo directly meant that updating them increases the size of our
.git
folder substantially. This is not a sustainable solution.Instead, we now download them from GitHub, using
nightly.link
as a middle-man (to avoid authenticating). Subsequently, the current binaries were deleted.Where exactly the binaries come from is tracked using a run ID stored in the update script (
meta/downloadHelperBinaries.ts
). Thus, changing this is as easy as changing that ID & re-runningpnpm download-helper-binaries
.The current workflow run IDs point to the latest ones available in their respective repositories. As such, this PR updates Legendary and gogdl (resolving issues with EA app detection and repeated "Galaxy Common Redistributables" downloads).
You will have to runBinaries are also automatically re-downloaded when checking out branches, provided they changedpnpm download-helper-binaries
manually when testing this PR / after it's merged, as well as every time the run ID changes. I opted for not doing this automatically to lessen the load onnightly.link
, as the script currently does not check whether the binaries have actually changed (a follow-up PR might change this).Heroic will now also use different binaries depending on your CPU architecture (with x86_64 and arm64 being the supported options). Currently the only platform with arm64 binaries is macOS, but Windows and Linux binaries can be easily added in the future
Closes #3846
Closes #3833
Use the following Checklist if you have changed something on the Backend or Frontend: