No description
  • GDScript 96.8%
  • Shell 3.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-25 05:54:25 -04:00
addons/gut Bootstrap roguelite: Godot 4.3 base project, GUT test suite, Jenkins CI 2026-08-25 01:59:16 -04:00
jenkins Bootstrap roguelite: Godot 4.3 base project, GUT test suite, Jenkins CI 2026-08-25 01:59:16 -04:00
scripts Fix: remove jq/python3 dependency — pure coreutils JSON handling 2026-08-25 05:37:51 -04:00
src Bootstrap roguelite: Godot 4.3 base project, GUT test suite, Jenkins CI 2026-08-25 01:59:16 -04:00
test Bootstrap roguelite: Godot 4.3 base project, GUT test suite, Jenkins CI 2026-08-25 01:59:16 -04:00
.env.ci.example Bootstrap roguelite: Godot 4.3 base project, GUT test suite, Jenkins CI 2026-08-25 01:59:16 -04:00
.gitignore Bootstrap roguelite: Godot 4.3 base project, GUT test suite, Jenkins CI 2026-08-25 01:59:16 -04:00
.gutconfig.json Bootstrap roguelite: Godot 4.3 base project, GUT test suite, Jenkins CI 2026-08-25 01:59:16 -04:00
export_presets.cfg Bootstrap roguelite: Godot 4.3 base project, GUT test suite, Jenkins CI 2026-08-25 01:59:16 -04:00
icon.svg Bootstrap roguelite: Godot 4.3 base project, GUT test suite, Jenkins CI 2026-08-25 01:59:16 -04:00
icon.svg.import Bootstrap roguelite: Godot 4.3 base project, GUT test suite, Jenkins CI 2026-08-25 01:59:16 -04:00
Jenkinsfile Fix: BRANCH_COMMIT unbound in publish script; pass from Jenkinsfile 2026-08-25 04:54:10 -04:00
project.godot Bootstrap roguelite: Godot 4.3 base project, GUT test suite, Jenkins CI 2026-08-25 01:59:16 -04:00
PROJECT.md Add PROJECT.md: build-order board, phases, dependency graph 2026-08-25 05:54:25 -04:00
README.md Bootstrap roguelite: Godot 4.3 base project, GUT test suite, Jenkins CI 2026-08-25 01:59:16 -04:00
VERSION Bootstrap roguelite: Godot 4.3 base project, GUT test suite, Jenkins CI 2026-08-25 01:59:16 -04:00

Roguelite

Base Godot 4.3 project with production CI on Jenkins and Forgejo releases. Branch model: develop gets auto-published dev builds (v0.1.0-dev.N), main gets stable releases (v0.1.0) when ./VERSION is bumped.

Layout

  • src/core/Roguelite.gd — pure game math (XP curve, damage, drops). Unit-testable.
  • src/core/Game.gd — run state autoload (level/XP/HP, save/load to user://).
  • src/game/Main.tscn — entry scene.
  • test/unit/ — GUT tests (addons/gut, vendored).
  • scripts/ci* — the CI pipeline scripts Jenkins runs.
  • VERSION — the current stable version. Tag = v$VERSION.

Branch & release model

Branch What happens on push
develop tests → Linux build → prerelease v$VERSION-dev.N (N auto-increments past existing tags)
main tests → Linux build → stable release v$VERSION if that tag doesn't exist yet

Shipping a new stable version:

  1. Merge develop into main.
  2. Bump ./VERSION (e.g. 0.1.00.1.1) in a commit on main.
  3. Push. The next Jenkins poll (≤5 min) publishes v0.1.1.

Semver prerelease ordering guarantees v0.1.0-dev.9 < v0.1.0 < v0.1.1-dev.1, so dev builds never shadow releases.

Test locally

bash scripts/ci_test.sh          # downloads headless Godot once, then runs GUT
bash scripts/ci_export.sh        # Linux build into build/linux/
bash scripts/ci/check_project.sh # layout readiness gate

Jenkins

Jobs: https://jenkins.aexoradao.com/job/Roguelite/ (main) · https://jenkins.aexoradao.com/job/Roguelite-develop/ (develop)

bash scripts/setup_jenkins_job.sh   # create/update both pipeline jobs

Both jobs run the same Jenkinsfile — Roguelite builds main, Roguelite-develop builds develop. They poll every 5 minutes; use Build With Parameters on the job page to trigger immediately. Publish needs the forgejo-erpnext credential (already configured on this Jenkins).