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

Provide prebuilt binaries for FreeBSD #438

Open
ararslan opened this issue May 8, 2024 · 8 comments
Open

Provide prebuilt binaries for FreeBSD #438

ararslan opened this issue May 8, 2024 · 8 comments
Assignees
Labels
enhancement New feature or request

Comments

@ararslan
Copy link

ararslan commented May 8, 2024

This issue is basically codecov/uploader#849 for the modern era. 😄 The move from the Node.js-based uploader to the Python-based CLI means that coverage can now be submitted from FreeBSD, e.g. on Cirrus CI and Travis, which is awesome! However, since prebuilt binaries are not available for FreeBSD like they are for other platforms, FreeBSD CI builds need to install from PyPI via pip. That in itself is not a problem—however, there is no Python wheel platform tag for FreeBSD, so installation requires a full source build of the package and all of its dependencies. This takes about 7 minutes of CI time on Cirrus for every run. In contrast, downloading and using the official prebuilt binaries from https://cli.codecov.io takes just a few seconds. It would be great to be able to avoid using all of that extra compute time.

Just as some of the binaries here are built using QEMU on GitHub Actions, FreeBSD binaries could be built using https://github.com/vmactions/freebsd-vm. (Alternatively, binaries for AArch64 Linux, both glibc and musl, could be built natively on Cirrus, which also natively supports FreeBSD, but I imagine y'all don't want to maintain a separate CI setup alongside GitHub Actions.)

Admittedly I don't know much about Python packaging but I'm more than happy to help however I can! cc also @lwhsu, who also offered to support for the previous issue.

@thomasrockhu-codecov
Copy link
Contributor

@trent-codecov, would love your input here on whether or not we can support this asset

@ararslan
Copy link
Author

Thanks, @thomasrockhu-codecov! @trent-codecov, let me know if there's any information I can provide that would be useful. #440 shows how the asset can be built (and tested, though that isn't implemented in that PR) on CI.

@ararslan
Copy link
Author

Any thoughts here, @trent-codecov?

@ararslan
Copy link
Author

ararslan commented Aug 9, 2024

🦗 🦗 🦗

@rohan-at-sentry
Copy link

@ararslan apologies for the radio silence here. I'll circle the wagons internally here to see what we can do with this

@ararslan
Copy link
Author

Thanks @rohan-at-sentry! Let me know if there's anything I can do to help or support. See also #440, which builds the release asset.

@trent-codecov
Copy link
Contributor

@thomasrockhu-codecov this looks like a good contribution. We can add this to the CLI release site easy enough. Have you tested this in any capacity? I don't have enough expertise here to ensure correctness.

@ararslan
Copy link
Author

The local build on Cirrus CI that I described in the top-level post is the same as what's implemented in #440, and it works as expected running on Cirrus. You can also add FreeBSD to your CI testing matrix using https://github.com/vmactions/freebsd-vm, just like what's used for building the release asset in #440. The downside of doing so would be the added overhead of the VM operations (setup, teardown, copying things back and forth, etc.) plus the lack of FreeBSD-specific Python wheels that leads to additional compilation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants