Should be quite portable, unless trying to port to Windows and certain Unix-isms like
fork(2) have been used. But in terms of what binaries will actually work for end users, I think it’s reasonable to target a limited set of OSs, e.g. macOS latest, a couple of popular Linux distros, and Windows if possible.
GitHub Actions provides virtual runners for these OSs, and allows you to install custom software e.g. opam and then use them in your builds: Customizing GitHub-hosted runners - GitHub Docs
It’s not terribly efficient–opam will need to be installed on each build–but if you release every week or so, for example, it shouldn’t be too annoying.
EDIT: I totally forgot about Set up OCaml, a custom GitHub Action which does all this for you, with efficient caching!
EDIT 2: GitHub action that creates a ‘release’ and uploads artifacts from the build to it: Create Release · Actions · GitHub Marketplace · GitHub
So, in GHA you can build the OCaml binary, wrap it up in a
.tar.gz along with the Python script and README, then upload the archive to the release page, Releases · UnixJunkie/FASMIFRA · GitHub