I have a project written in Godot 4.4.dev that depends on GitHub Actions to trigger builds and release artifacts. It will deploy to Azure Kubernetes Service, as well as to Google Play and the Apple Store, whenever a release branch is created.
The project is built using my fork of the godot project, which has some custom features added. Whenever there is a release of my project, it will check out the fork, compile the engine, and export from there. This process can take an hour or more to complete, which is really time-consuming.
My intention is to create a release of Godot called 4.4.dev in my fork, which will build and publish artifacts like the upstream version. I want to use these artifacts to export my project, reducing the time it takes to release.
However, I don’t know how to achieve that. Does anyone in the upstream have detailed steps for creating a release of the Godot editor?
To give you an idea, for my project I chose to fork those 2 repositories, removed the use of podman, rewrote some bash, and can now produce Godot binaries for my custom Godot 4.4 fork.
Edit: perhaps consider adding your custom additions to Godot as GDExtension instead (godot-cpp), if possible. It would simplify the release process.
I customized some properties of the existing nodes and added a new node to the engine. The new ColorPalette class can be created using GDExtension, but the others are just properties added to the existing nodes, which requires the engine to recompile. Sooner or later, I will still have to recompile the engine because of my custom features. Therefore, having an automated process for creating releases of Godot is necessary.
If your team’s automated scripts are not private, could you share them with me as well? It would save me weeks of developing and testing. I don’t have a strong laptop to install and run the Docker images, so I’m testing directly with GitHub Actions.
Perhaps you can still create a GDExtension, then use inheritance to extend/change existing classes/nodes.
My build system is not free/public, will not share it. Also note that my build system is still using Docker, I just removed podman and changed the bash scripts.