codecov-cli
codecov-cli copied to clipboard
Provide prebuilt binaries for FreeBSD
This issue is basically https://github.com/codecov/uploader/issues/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.
@trent-codecov, would love your input here on whether or not we can support this asset
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.
Any thoughts here, @trent-codecov?
๐ฆ ๐ฆ ๐ฆ
@ararslan apologies for the radio silence here. I'll circle the wagons internally here to see what we can do with this
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.
@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.
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.
@trent-codecov, @thomasrockhu-codecov: Is there anything I can do to support here? Any changes to be made to #440?
@ararslan sorry, to be transparent I'm working on a large release this week. I will take a look at this feature/PR in November and what our needs might be. Thanks for being so patient and for your help.
Thanks for the update, much appreciated! Best of luck with the release. ๐
@thomasrockhu-codecov and @trent-codecov, just wanted to bump this in case it fell off of your radar.
Happy new year, folks! @thomasrockhu-codecov and @trent-codecov, bumping again for 2025. ๐
@ararslan thanks for the bump, will try to slate this in this month
Think this might be feasible for next month, @thomasrockhu-codecov / @trent-codecov?
@ararslan yeah, sorry, I'm updating our release process to add some capacity here
FYI @thomasrockhu-codecov and @trent-codecov, I've rebased #440 in case that would be useful if/when you're able to look into this request. ๐
Happy 1-year anniversary of this issue! ๐ @thomasrockhu-codecov and/or @trent-codecov, is there any chance this would be considered at some point?
@ararslan happy 1-year anniversary. Sorry this is taking so long to get through, we have been pretty slammed. I don't want to get your hopes up that this is going to happen immediately, but it is at least been on my radar for awhile. I will try to get this on our roadmap in the next few months.
No worries, I definitely understand! I appreciate the consideration. Let me know if/how I can help whenever the time comes.