PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
Build And Validation

PixelBullet is Bazel-first, Bzlmod-only, and wrapper-first. The repository-owned wrappers carry the supported cache, toolchain, and CI-parity behavior. AGENTS.md is the operational authority for toolchain, bootstrap, cache, IDE, and worktree safety details; this guide is the concise navigation surface.

First Lanes

Host Day-to-day lane Audit lane
Linux/WSL linux_clang linux_gcc_audit
Windows windows_clangcl windows_msvc_audit

The pinned LLVM version is owned by repository toolchain configuration. Generic Windows shells that are not already MSVC-capable use the native WSL checkout for generic validation.

Wrapper Entry Points

Linux or WSL:

bash ci/local.sh fast_ci
bash ci/local.sh repo_policy
bash ci/local.sh repo_audit
bash ci/local.sh artifact_smoke
bash ci/local.sh docs_build
bash ci/local.sh release_smoke_clang

Windows from Developer PowerShell or another MSVC-capable shell:

.\ci\local.ps1 fast_ci
.\ci\local.ps1 repo_policy
.\ci\local.ps1 repo_audit
.\ci\local.ps1 artifact_smoke
.\ci\local.ps1 windows_smoke_clangcl
.\ci\local.ps1 -Wsl release_smoke_clang

List current job names from ci/task_runner.py rather than copying CI internals into local scripts.

Validation By Change

  • C++ behavior: fast_ci, then the nearest smoke or release-smoke lane.
  • Bazel, wrappers, toolchains, or CI: repo_policy, repo_audit, then the relevant parity lane.
  • Packaging: artifact_smoke and build_editor_release.
  • Documentation or Doxygen: docs_build plus affected repository contracts.
  • Windows toolchains: doctor_toolchains and windows_smoke_clangcl.

Useful direct targets:

bazel test //:fast_ci_tests
bazel test //:repo_policy_tests
bazel test //:repo_audit_tests
bazel build //doxygen:html
bazel build //packaging:bundle_editor_release

Formatting

python3 tools/dev/run_clang_format.py --check --changed
python3 tools/dev/run_buildifier.py --check --changed

Buildifier is authoritative for Bazel and Starlark files. The helpers use repo-owned pinned tools. Generated docs go under public/; packaged outputs go under dist/. Validation-only generated output is not a source change.