Skip to content

feat: add GitHub Actions to build release #84

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

Merged
merged 8 commits into from
May 27, 2025
Merged

Conversation

nmerget
Copy link
Contributor

@nmerget nmerget commented May 25, 2025

Add GitHub workflow to build and release GodotJS

@Benjamin-Dobell
Copy link
Collaborator

This will be super handy!

If you run into trouble with v8 versions, this will soon be a lot easier when godotengine/godot#100749 lands in Godot. I've got a bunch of commits over at https://github.com/Benjamin-Dobell/GodotJS/commits/main/ that I need to clean up and upstream. Some of this is related to C++20. This will allow us to use the latest v8 (which requires C++20 to build).

@nmerget
Copy link
Contributor Author

nmerget commented May 26, 2025

This will be super handy!

If you run into trouble with v8 versions, this will soon be a lot easier when godotengine/godot#100749 lands in Godot. I've got a bunch of commits over at https://github.com/Benjamin-Dobell/GodotJS/commits/main/ that I need to clean up and upstream. Some of this is related to C++20. This will allow us to use the latest v8 (which requires C++20 to build).

I uses v8_12.4.254.21_r13 for now. The changes for C++20 would be another topic ^.^

Furthermore, I disabled the tests for now. Would be an improvement as well

@nmerget nmerget marked this pull request as ready for review May 26, 2025 10:51
@Benjamin-Dobell
Copy link
Collaborator

This looks pretty fantastic to me. Sorry about the merge conflict in jsb_environment.cpp, that file can just be dropped now since the same fix has landed in main. You'll either want to squash and merge, or alternatively do an interactive rebase (+ force push) squashing some of fix-up commits together.

Aside from that, unless @ialex32x, has some thoughts, I reckon you're good to merge this.

A nice follow-up in future would be to introduce a super simple patch mechanism for the Godot Engine source. Main use case I have in mind would be to patch the URL in ExportTemplateManager::_refresh_mirrors to point to something we can generate along with each build. Then users would just be able to download the latest GH release and easily obtain appropriate export templates.

@Benjamin-Dobell
Copy link
Collaborator

@nmerget I've just rebased this for you (since I broke it) 😅 I squashed the fix-up commits (duplicate commit messages) but kept individual commits for posterity. Assuming the actions run to completion, I'll merge it when they're done.

@Benjamin-Dobell Benjamin-Dobell merged commit bddcb7d into main May 27, 2025
29 checks passed
@Benjamin-Dobell
Copy link
Collaborator

@nmerget Thanks so much for putting this together! It's a massive improvement. 🎉

@nmerget
Copy link
Contributor Author

nmerget commented May 27, 2025

@Benjamin-Dobell I would have squashed it before during the merge ^.^
But nvm I'll update the documentation as well

@nmerget
Copy link
Contributor Author

nmerget commented May 27, 2025

This looks pretty fantastic to me. Sorry about the merge conflict in jsb_environment.cpp, that file can just be dropped now since the same fix has landed in main. You'll either want to squash and merge, or alternatively do an interactive rebase (+ force push) squashing some of fix-up commits together.

Aside from that, unless @ialex32x, has some thoughts, I reckon you're good to merge this.

A nice follow-up in future would be to introduce a super simple patch mechanism for the Godot Engine source. Main use case I have in mind would be to patch the URL in ExportTemplateManager::_refresh_mirrors to point to something we can generate along with each build. Then users would just be able to download the latest GH release and easily obtain appropriate export templates.

At the moment we point to 4.4 which means it should use the latest patch version from Godot.
A great way of dealing with Open Source releases is changesets, at least in the npm world.
If we use changests we would create a cron-job (schedule action) to run the release process every week.
It would bundle all changesets into a changelog and would release the current Godot + GodotJS without any effort.

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
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy