No description
- GDScript 96.8%
- Shell 3.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| addons/gut | ||
| jenkins | ||
| scripts | ||
| src | ||
| test | ||
| .env.ci.example | ||
| .gitignore | ||
| .gutconfig.json | ||
| export_presets.cfg | ||
| icon.svg | ||
| icon.svg.import | ||
| Jenkinsfile | ||
| project.godot | ||
| PROJECT.md | ||
| README.md | ||
| VERSION | ||
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 touser://).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:
- Merge
developintomain. - Bump
./VERSION(e.g.0.1.0→0.1.1) in a commit on main. - 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).