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

Run CI against stable Godot runtime #288

Merged
merged 6 commits into from
Jun 5, 2023
Merged

Run CI against stable Godot runtime #288

merged 6 commits into from
Jun 5, 2023

Conversation

Bromeon
Copy link
Member

@Bromeon Bromeon commented May 29, 2023

Adds CI jobs that run against stable release of the last Godot minor version (here 4.0.3).

This distinction is important, as we have two dimensions of Godot versions now:

  • GDExtension API -- this is the version of the GDExtension API against which gdext is compiled.
  • Runtime -- this is the version of the Godot binary under which gdext runs.

By default, most jobs include latest Godot nightly version (so that is not explicitly annotated in the names).
-nightly means that a nightly API version is used. stableRt means stable runtime (the new jobs).

Includes #285 as a base, as that is required to fix failing jobs with Godot 4.0.3 stable.

Runs only clang memchecks for now; the gcc ones don't add that much, and we already have a huge number of jobs now. We may reduce this over time.

@Bromeon Bromeon added feature Adds functionality to the library c: tooling CI, automation, tools labels May 29, 2023
@Bromeon Bromeon force-pushed the feature/ci-stable-godot branch from 8a5af51 to 1a3e2d5 Compare May 29, 2023 10:15
@Bromeon
Copy link
Member Author

Bromeon commented May 29, 2023

I had problems with a segfault in windows-stable-4.0.3 before, let's see if this still occurs 🤔

Link to CI run from this PR.

bors bot added a commit that referenced this pull request May 29, 2023
288: Run CI against stable Godot runtime r=Bromeon a=Bromeon

Adds CI jobs that **run** against stable release of the last Godot minor version (here 4.0.3).

This distinction is important, as we have two dimensions of Godot versions now:
* **GDExtension API** -- this is the version of the GDExtension API against which gdext is _compiled_.
* **Runtime** -- this is the version of the Godot binary under which gdext _runs_.

By default, most jobs include latest Godot nightly version (so that is not explicitly annotated in the names).
`-nightly` means that a nightly _API_ version is used. `stableRt` means stable _runtime_ (the new jobs).

Includes #285 as a base, as that is required to fix failing jobs with Godot 4.0.3 stable.

Runs only clang memchecks for now; the gcc ones don't add that much, and we already have a huge number of jobs now. We may reduce this over time.

Co-authored-by: Lili Zoey <lili.andersen@nrk.no>
Co-authored-by: Jan Haller <bromeon@gmail.com>
@Bromeon Bromeon force-pushed the feature/ci-stable-godot branch from 1a3e2d5 to 2a33264 Compare May 29, 2023 10:17
@godot-rust godot-rust deleted a comment from bors bot May 29, 2023
@GodotRust
Copy link

API docs are being generated and will be shortly available at: https://godot-rust.github.io/docs/gdext/pr-288

@Bromeon
Copy link
Member Author

Bromeon commented Jun 5, 2023

One CI job linux-memcheck-stable-4.0.3 is still failing with memory leaks. This one runs the current gdext version (compiled against 4.0.3 API) with a Godot 4.1-dev binary.

I haven't managed to isolate the leaks, as I cannot reproduce them locally (with Win10 + WSL2), and they don't seem to follow a 1:1 per-use pattern. For example, calling Array::default() causes a leak, but calling it twice doesn't cause more leaks, despite the stack trace pointing to this allocation. I wonder if this is a systematic problem similar to the dlclose issue from #133.

To make matters worse, nightly.link is currently down too, meaning all our artifact-depending CI is not operational. If this persists, we need to migrate away from it by manually calling/searching several GitHub Actions REST APIs. Looking at their issue tracker, downtimes unfortunately seem to occur quite a lot 😕

bors try
(guaranteed failure)

bors bot added a commit that referenced this pull request Jun 5, 2023
@Bromeon
Copy link
Member Author

Bromeon commented Jun 5, 2023

Just now, https://nightly.link seems up again, at least the website. So let's try again...

bors try

bors bot added a commit that referenced this pull request Jun 5, 2023
@godot-rust godot-rust deleted a comment from bors bot Jun 5, 2023
@bors
Copy link
Contributor

bors bot commented Jun 5, 2023

try

Build failed:

Bromeon added 3 commits June 5, 2023 21:55
For now, disable failing memleak CI job (4.0.3 API, 4.1+ binary)
Addresses a regression introduced in fc4a405:
> Remove several memory leaks by constructing into uninitialized pointers
@Bromeon Bromeon force-pushed the feature/ci-stable-godot branch from c803bfd to 27a3a7f Compare June 5, 2023 19:56
@Bromeon
Copy link
Member Author

Bromeon commented Jun 5, 2023

CI memory leak issue deferred to #298.

bors r+

@bors
Copy link
Contributor

bors bot commented Jun 5, 2023

Build succeeded!

The publicly hosted instance of bors-ng is deprecated and will go away soon.

If you want to self-host your own instance, instructions are here.
For more help, visit the forum.

If you want to switch to GitHub's built-in merge queue, visit their help page.

  • full-ci

@bors bors bot merged commit 627d408 into master Jun 5, 2023
@bors bors bot deleted the feature/ci-stable-godot branch June 5, 2023 20:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c: tooling CI, automation, tools feature Adds functionality to the library
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants