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

Add GHA workflow for Linux builds #20

Merged
merged 1 commit into from
Nov 29, 2023
Merged

Conversation

gaborcsardi
Copy link
Collaborator

@gaborcsardi gaborcsardi commented Nov 29, 2023

The goal of this is to be able to check the build on various Linux distros quickly, since it seems non-trivial to work out the exact packages needed.

It also fixes the build on the tested distros, using the stock packages from the distro.

Issues:

  • There is a lot of repetition in the Dockerfiles and the workflow as well, which we might DRY out at some point.
  • No caching. Which is bad for the Fedora + R-devel run, because it builds dependencies from source, including arrow, which is really slow.
  • It does not run any tests with the built package currently.
  • This probably breaks the build with hand-compiled grpc, as suggested by the README, I'll fix that.

In any case, while not ideal, it is useful as a workflow that you can trigger manually, I think. We can improve it later, as needed.

@meztez
Copy link
Owner

meztez commented Nov 29, 2023

@gaborcsardi Well this project has not felt the love in a long time! I'm trying this right away.

@gaborcsardi gaborcsardi force-pushed the gha-linux branch 2 times, most recently from f663e11 to 73f308d Compare November 29, 2023 14:59
Add GHA tests
@gaborcsardi
Copy link
Collaborator Author

Haha, wait a bit, still fixing things up, hence the draft. :)

@gaborcsardi
Copy link
Collaborator Author

Some questions and comments.

While this PR focuses on Linux, it might break things on macOS and/or Windows. IMO not a big issue, because the macOS and Windows builds do not work very well currently, anyway, and I'll submit separate PRs for those soon. (Managed to build static libs for macOS already: https://github.com/gaborcsardi/homebrew-cran/releases)

Is there a particular Linux distro you use for bigrquerystorage, or you think is important to support well? I'll add those to the build matrix.

More soon.

@gaborcsardi
Copy link
Collaborator Author

@meztez Another question. Is it important to use the latest grpc (& co.) (for you and/or for users) or we can use the stock packages in the distros?

@gaborcsardi gaborcsardi marked this pull request as ready for review November 29, 2023 15:21
@gaborcsardi
Copy link
Collaborator Author

@meztez Assuming the Fedora-38 build [1] works as well (works for me locally), this is ready for review.

[1] https://github.com/gaborcsardi/bigrquerystorage/actions/runs/7034431076/job/19142470084

@gaborcsardi gaborcsardi changed the title Fix build on Linux Add GHA workflow for Linux builds Nov 29, 2023
@meztez
Copy link
Owner

meztez commented Nov 29, 2023

Some questions and comments.

While this PR focuses on Linux, it might break things on macOS and/or Windows. IMO not a big issue, because the macOS and Windows builds do not work very well currently, anyway, and I'll submit separate PRs for those soon. (Managed to build static libs for macOS already: https://github.com/gaborcsardi/homebrew-cran/releases)

Is there a particular Linux distro you use for bigrquerystorage, or you think is important to support well? I'll add those to the build matrix.

More soon.

I use Ubuntu LTS, usually the latest (right now, jammy).

Windows builds but does not work, it fail in winsocket and I spent too much time in dbg and gave up.

@meztez meztez merged commit 6d8a552 into meztez:master Nov 29, 2023
@gaborcsardi
Copy link
Collaborator Author

@meztez Sorry, I was commenting/editing comments, so you missed some:

Another question. Is it important to use the latest grpc (& co.) (for you and/or for users) or we can use the stock packages in the distros?

This PR probably breaks the build with hand-compiled grpc, as suggested by the README, I'll fix that.

@meztez
Copy link
Owner

meztez commented Nov 29, 2023

@gaborcsardi fixed the README, I'd rather use the distro packages if they are available. Tested it, works fine. Windows still broken.

@meztez
Copy link
Owner

meztez commented Nov 29, 2023

Some questions and comments.

While this PR focuses on Linux, it might break things on macOS and/or Windows. IMO not a big issue, because the macOS and Windows builds do not work very well currently, anyway, and I'll submit separate PRs for those soon. (Managed to build static libs for macOS already: https://github.com/gaborcsardi/homebrew-cran/releases)

Is there a particular Linux distro you use for bigrquerystorage, or you think is important to support well? I'll add those to the build matrix.

More soon.

You are taking on quite an endeavour there.
#18 (comment)

@gaborcsardi
Copy link
Collaborator Author

You are taking on quite an endeavour there.

Well, for CRAN we'll need to compile grpc statically, if that's possible at all. (Should be, because I did it for macOS, although haven't tested that it actually works.) My hope is that if we compile it statically, with the compiler(s) CRAN uses, then we don't run into this issue. We'll see. I'll start that soon, let's finish macOS first.

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.

2 participants