-
Notifications
You must be signed in to change notification settings - Fork 71
Minimize CI burden by commenting out parts of the matrix #93
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
base: main
Are you sure you want to change the base?
Conversation
I'm not sure I like disabling CI, it means users will have to re-enable these builds manually with a commit when cloning the repo. Edit: Actually, I'd disable |
Hmm yeah I guess you could be right. On the other hand probably not everyone would be wanting to have everything enabled by default anyways. Not every extension will (need to) work on every platform. Also one commit to enable everything doesn't sound very bad in my opinion. You will probably want to configure your stuff anyways since we have the naming predefined with the template variables. So might as well... I am not opposed to build profiles though. Haven't heard about them though (I only get weird search results). Do you mind sharing a link to a docs page?
Even better. So that would change the line float-precision: [single, double] to this here then?: float-precision: [
single,
#double
] |
I don't think they're documented yet :/ They're used to compile only parts of godot-cpp, and skip the rest. You can use one with the I think they need to be in a file, but as long as users don't manually use the Edit: I just remembered, we do actually have a dummy
Yep, that should work! |
You can use We follow a similar approach in godot-rust. We run 3 |
- Minimizes CI burden by commenting out parts of the matrix so that one entry for every platform remains - Adds a commented out option for web builds using threads=no
b9003b0
to
122e8c6
Compare
include: | ||
- platform: linux | ||
arch: x86_64 | ||
os: ubuntu-22.04 | ||
float-precision: double | ||
- platform: web | ||
arch: wasm32 | ||
os: ubuntu-22.04 | ||
threads: no |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Bromeon You mean like this? I took a look at gdext and the docs page you linked
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, does it work as expected?
Small side note, the [ ]
syntax across multiple lines is a bit unusual in YAML, although allowed. Typically lists are -
prefixed like here 🙂
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not really sure :/ the action on GitHub doesn't run (and doesn't show any debug info either). I tried to run the action locally but I can't run everything there with Docker either 😅
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's here, in the Actions
tab of the repo 🙂
Build GDExtension
Error when evaluating 'runs-on' for job 'build'. .github/workflows/builds.yml (Line: 54, Col: 14): Unexpected value ''
The problem is that target
is nested (itself a list of objects containing platform
/arch
/os
), but you only refer to its sub-keys.
The include
however needs to refer to paths from the top level, like target-type
. I'm not sure how the exact syntax would work for a nested property, maybe
include:
- target:
platform: linux
arch: x86_64
os: ubuntu-22.04
float-precision: double
GitHub Actions are always trial&error, you might need to experiment a bit (or ask an AI, which itself can be trial&error) 😬 But it's also possible that this isn't supported, and would need flat keys.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Personally, I use the GH runners to make builds, and I trigger CI manually only once every month or so. So I'd definitely prefer CI that has all the templates enabled by default, and with a nice and clean configuration — but also have it not auto-run on push.
But in this repository, it's set to run by default. I suppose with that configuration, it makes sense to only check a few combinations.
So yea, even though I personally don't like the change much, i guess it's a net plus in most situations.
We should probably still be making that build profiles change though, at least here. That should save us another ~80% or so of build time. But I'm happy to do that as follow-up.
Before-After comparison
Before:
After: