Skip to content

Amend workflows/run script to use new custom builder templates#1200

Merged
NathanLovato merged 2 commits intoGDQuest:mainfrom
Razoric480:raz/new_release
Jan 14, 2026
Merged

Amend workflows/run script to use new custom builder templates#1200
NathanLovato merged 2 commits intoGDQuest:mainfrom
Razoric480:raz/new_release

Conversation

@Razoric480
Copy link
Copy Markdown
Collaborator

@Razoric480 Razoric480 commented Jan 11, 2026

Please check if the PR fulfills these requirements:

  • The commit message follows our guidelines.
  • For bug fixes and features:
    • You tested the changes.

What kind of change does this PR introduce?

This PR updates the exporting and publishing workflows to enable using arbitrary godot templates and servers stored somewhere, rather than a hardcoded 3.4.4 template that was uploaded by myself.

Editing the .env file allows one to supply which repository and which version to expect to download and export with.

It also includes a couple fixes to the project itself:

  • SliceParser cannot open a .gd file in exported builds, as those files do not exist anymore (they are byte-coded .gdb files). During build time, we copy every course/**/*.gd file into a .lgd file, which we include as raw-text during export via the non-resources field, and use that. This does not change editor-time behaviour so the path substitution is behind a editor_hint
  • Fixed the learn-to-code logo on the welcome screen. During the transition to 3.6.2 it apparently shifted to the bottom right of its rect.

Does this PR introduce a breaking change?

No. Only to the export workflows and scripts that pertain to it. Everything else stayed the same.

New feature or change

What is the current behavior?

  • Exports to a custom Godot 3.4.4 that has been pre-built and published to github at some point in the past, requiring manual work to update.
  • An exported build fails to run because SliceParser cannot locate the .gd file, or read its comments to parse # EXPORT

What is the new behavior?

  • Exports to a custom Godot 3.6.2 that has been pre-built and published to github, but can be re-compiled and re-published with convenient scripts.
  • An export build succeeds when SliceParser loads the .lgd file created at build time

Other information

This change has a few factors:

  • A repository, which includes a container image and a build-script. See that page for details in the README. It also servers as the location where releases can be uploaded. At the moment it's in my repositories but this could be forked and updated to publish to the fork just by changing the .env within.
  • This change, to actually invoke the built and published headless and templates to export the learn-gdscript. It modifies the workflows to use a generic build image instead of a specialized 3.4.4 one, and amends the run script to download headless + templates prior to exporting. Everything after that is the same.

Test Results

Web export on local server
Screenshot_2
Screenshot_1

Integration test result (windows)

$/learn_to_code tests/integration_test_course.tscn

==================================================
Test Summary
==================================================
Total lessons tested: 27
Total practices tested: 53
Tests passed: 53 / 53
Failures: 0
Timeouts: 0

OK - All tests passed!

@Razoric480 Razoric480 marked this pull request as draft January 12, 2026 17:56
@Razoric480 Razoric480 force-pushed the raz/new_release branch 3 times, most recently from c1787a4 to 0600f8a Compare January 12, 2026 21:45
@Razoric480 Razoric480 marked this pull request as ready for review January 12, 2026 21:56
@NathanLovato NathanLovato merged commit 40da50f into GDQuest:main Jan 14, 2026
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