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 Linux aarch64 packages using the new GH runner #8306

Merged
merged 8 commits into from
Jan 28, 2025

Conversation

hexchain
Copy link
Contributor

@hexchain hexchain commented Jan 20, 2025

This PR tries to build one more artifact using the new GH ARM64 Linux runner (https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/).

I maintain the Insomnia flatpak on FlatHub (https://github.com/flathub/rest.insomnia.Insomnia) and building the application from source has been difficult. The environment for the compile/build phase is fully offline, which means any dependencies must be obtained beforehand, which in turn requires declaring them in the flatpak manifest. It is impossible to do this by hand for a large project like this. There is a tool to help generate this , but it doesn't support git sources, which this application depends on.

I've stumbled upon the news that GHA added ARM64 Linux runners and decided to give this a try. If it works and it's acceptable, hopefully we can rely on the official aarch64 linux binaries in the future.

@CLAassistant
Copy link

CLAassistant commented Jan 20, 2025

CLA assistant check
All committers have signed the CLA.

@jackkav
Copy link
Contributor

jackkav commented Jan 20, 2025

Neat, looks like we need a linux arm build of node-libcurl I'll take a look.

@jackkav
Copy link
Contributor

jackkav commented Jan 22, 2025

Update on this: recent changes to github runner environments across all OS appear to causing all the exception tests to fail on any changes to node-libcurl.

Going forward I can temporarily comment out these tests, just to see if this PR works, but ideally we would want to re-enable them before completing this work.

@hexchain
Copy link
Contributor Author

Those 4 tests also fail locally for me, on both x86_64 and aarch64, regardless of whether the binary addon is prebuilt or not.

@filfreire
Copy link
Member

@jackkav @hexchain we can retry with node-libcurl 2.33.7

@hexchain
Copy link
Contributor Author

hexchain commented Jan 23, 2025

Will update after that version become available on NPM.

Out of interest, why is the node-libcurl dependency a fork? The original one also seems active at the moment. If there are non-upstreamable changes, is there any plan to rebase?

Copy link
Member

@filfreire filfreire left a comment

Choose a reason for hiding this comment

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

@jackkav
Copy link
Contributor

jackkav commented Jan 23, 2025

Out of interest, why is the node-libcurl dependency a fork? The original one also seems active at the moment. If there are non-upstreamable changes, is there any plan to rebase?

JCMais/node-libcurl#411 (comment)

I don't believe there are significant non-upstreamable changes.

Our motivations have generally been keeping our electron/nodejs up to date, which releases every 3 months.

We are eagerly anticipating the N-API work in progress in the upstream to be completed, in order to upstream our changes and return to it. Then it will no longer be necessary for us to publish a new node-libcurl version for every nodejs upgrade. This will be a huge relief as it cut out several days of work every 2-3 months preparing node-libcurl releases.

@hexchain
Copy link
Contributor Author

The CI should pass for aarch64 now. I'll look at the release-publish workflow later.

@hexchain
Copy link
Contributor Author

I've updated the release-* workflows but cannot test if it works (and I'm not too confident about it)...

@jackkav
Copy link
Contributor

jackkav commented Jan 28, 2025

Future work here is running a beta release and checking all the linux dist channels for the arm build. Snap craft and such.

@jackkav jackkav merged commit e5c49f8 into Kong:develop Jan 28, 2025
9 checks passed
@hexchain hexchain deleted the linux-aarch64 branch January 28, 2025 10:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants