Skip to content

docs: add preflight tests concept and built-in check reference#572

Open
frostebite wants to merge 2 commits into
mainfrom
docs/preflight-tests
Open

docs: add preflight tests concept and built-in check reference#572
frostebite wants to merge 2 commits into
mainfrom
docs/preflight-tests

Conversation

@frostebite
Copy link
Copy Markdown
Member

@frostebite frostebite commented May 14, 2026

Summary

  • Introduces preflight tests as a first-class concept in game-ci orchestrator documentation
  • New page at advanced-topics/13-preflight-tests.mdx covering: concept overview, pipeline position, 13 built-in checks grouped by category, configuration reference, CLI usage, extensibility (custom + community checks), and continuous improvement cycle
  • Cross-links added to test-workflow-engine.mdx and build-reliability.mdx

Test plan

  • Verify Docusaurus builds successfully
  • Verify sidebar shows new page in correct position
  • Verify cross-links resolve correctly
  • Review content accuracy against orchestrator implementation

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Added comprehensive documentation for Preflight Tests, including configuration, built-in checks, custom check creation, and CLI usage.
    • Updated related documentation pages with references to Preflight Tests for early failure detection.

Review Change Stack

Introduces preflight tests as a first-class concept in game-ci:
- New page covering concept, 13 built-in checks, configuration,
  CLI usage, extensibility, and continuous improvement cycle
- Cross-links from test-workflow-engine and build-reliability pages

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 14, 2026

Warning

Rate limit exceeded

@frostebite has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 55 minutes and 57 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 7553716c-7c36-48f8-b208-a46ff5b9a5cf

📥 Commits

Reviewing files that changed from the base of the PR and between ea1c109 and 3f70237.

📒 Files selected for processing (1)
  • docs/03-github-orchestrator/07-advanced-topics/13-preflight-tests.mdx
📝 Walkthrough

Walkthrough

This PR adds comprehensive documentation for a new Preflight Tests CI stage feature. It includes a complete new 313-line guide covering preflight tests' purpose, pipeline position, configuration, built-in and custom checks, design principles, CLI commands, and configuration reference. Two related documentation pages are updated with cross-references to the new content.

Changes

Preflight Tests Documentation

Layer / File(s) Summary
Preflight Tests introduction and configuration
docs/03-github-orchestrator/07-advanced-topics/13-preflight-tests.mdx
Introduces preflight tests as a fail-fast, lightweight validation stage that runs before expensive builds; documents pipeline position, abort-on-first-failure behavior, quick-start configuration, and configuration inputs with defaults.
Checks catalog and customization
docs/03-github-orchestrator/07-advanced-topics/13-preflight-tests.mdx
Lists built-in checks by category (config, environment, integrity, compilation) with timing and Unity requirements; explains custom inline check definition, pass/fail semantics based on exit codes, and importing community check packages; covers scoping checks via file paths and conditional execution.
Design principles, usage guidance, and CLI
docs/03-github-orchestrator/07-advanced-topics/13-preflight-tests.mdx
Documents design principles (fast, fail-fast, cheap, extensible, scoped) with duration constraints; provides a comparison table for choosing preflight vs other CI gates; describes game-ci preflight CLI commands for running, listing, and inspecting checks locally; outlines the continuous improvement cycle for suite maintenance.
Documentation integration
docs/03-github-orchestrator/07-advanced-topics/11-test-workflow-engine.mdx, docs/03-github-orchestrator/07-advanced-topics/17-build-reliability.mdx
Adds cross-references from the Test Workflow Engine and Build Reliability pages to the Preflight Tests documentation, directing readers to early validation options before expensive operations.

Estimated Code Review Effort

🎯 1 (Trivial) | ⏱️ ~4 minutes

Poem

🐰 A preflight stage hops into view,
Fast checks before builds run through,
No Unity weight, just config care,
Fail early, fail fast—catch snares with flair! ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description is mostly complete with summary and test plan, but does not follow the required template structure with 'Changes' section and proper checklist. Reorganize description to match the template: add a 'Changes' section with bullet points summarizing modifications, and complete the required checklist items (contribution guide, readme, tests).
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically describes the main changes: adding documentation for preflight tests concept and built-in check reference.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/preflight-tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
docs/03-github-orchestrator/07-advanced-topics/13-preflight-tests.mdx (1)

276-279: 💤 Low value

Minor: Design principle timing may need clarification.

Line 278 states each check completes "in under 60 seconds," but line 125 shows compilation checks can take "30–60s," which technically allows checks to hit exactly 60 seconds. Consider revising to "in 60 seconds or less" for precision, or "well under 60 seconds" if the intent is stricter.

📝 Optional wording clarification
-- **Fast.** Each check completes in under 60 seconds. The full suite completes in under 5 minutes.
+- **Fast.** Each check completes in 60 seconds or less. The full suite completes in under 5 minutes.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/03-github-orchestrator/07-advanced-topics/13-preflight-tests.mdx` around
lines 276 - 279, The wording under the "Design Principles" heading currently
says "Each check completes in under 60 seconds" which conflicts with the later
note that compilation checks can take "30–60s"; update the phrase to be precise
and consistent—e.g., change "in under 60 seconds" to "in 60 seconds or less" or
to "well under 60 seconds" depending on the intended strictness, and ensure the
change aligns with the "compilation checks" line so both statements convey the
same timing expectation.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/03-github-orchestrator/07-advanced-topics/13-preflight-tests.mdx`:
- Around line 306-313: The Inputs Reference table documents inputs
(preflightSuite, preflightEnabled, preflightFailFast, preflightTimeout) that are
not present in the orchestrator/action schema; either remove this table or
update it to match the real implementation. Inspect the orchestrator and
unity-builder sources (search for the exact input names preflightSuite,
preflightEnabled, preflightFailFast, preflightTimeout) to confirm whether these
inputs exist, were removed, or are planned; if they don't exist, delete the
table and replace with a note stating preflight inputs are not supported, or if
they are planned/legacy, add a clear remark indicating their status and link to
the correct implementation or roadmap.

---

Nitpick comments:
In `@docs/03-github-orchestrator/07-advanced-topics/13-preflight-tests.mdx`:
- Around line 276-279: The wording under the "Design Principles" heading
currently says "Each check completes in under 60 seconds" which conflicts with
the later note that compilation checks can take "30–60s"; update the phrase to
be precise and consistent—e.g., change "in under 60 seconds" to "in 60 seconds
or less" or to "well under 60 seconds" depending on the intended strictness, and
ensure the change aligns with the "compilation checks" line so both statements
convey the same timing expectation.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 73907a6f-9c01-47a3-90a4-99f0401d7ba8

📥 Commits

Reviewing files that changed from the base of the PR and between 8d2c3d4 and ea1c109.

📒 Files selected for processing (3)
  • docs/03-github-orchestrator/07-advanced-topics/11-test-workflow-engine.mdx
  • docs/03-github-orchestrator/07-advanced-topics/13-preflight-tests.mdx
  • docs/03-github-orchestrator/07-advanced-topics/17-build-reliability.mdx

Comment on lines +306 to +313
## Inputs Reference

| Input | Description | Default |
| --- | --- | --- |
| `preflightSuite` | Path to preflight suite YAML file | `''` |
| `preflightEnabled` | Enable the preflight stage | `'true'` when suite is set |
| `preflightFailFast` | Abort on first check failure | `'true'` |
| `preflightTimeout` | Maximum total preflight duration in seconds | `300` |
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Find the orchestrator configuration schema or input definitions

# Search for orchestrator input/config schema
echo "=== Searching for preflight configuration schema ==="
rg -n --type=yaml --type=ts --type=json -C5 'preflightSuite|preflightEnabled|preflightFailFast|preflightTimeout'

# Look for JSON schema or TypeScript interfaces defining config
echo -e "\n=== Searching for config type definitions ==="
ast-grep --pattern 'interface $_ {
  $$$
  preflight$_: $_
  $$$
}'

# Search for default values
echo -e "\n=== Searching for default value definitions ==="
rg -n --type=ts --type=js 'preflightTimeout.*300|preflightFailFast.*true'

Repository: game-ci/documentation

Length of output: 214


🏁 Script executed:

#!/bin/bash
# Find references to the orchestrator or its repository
echo "=== Searching for orchestrator repository references ==="
rg -n "orchestrator" docs/ | head -20

echo -e "\n=== Checking git submodules ==="
cat .gitmodules 2>/dev/null || echo "No .gitmodules file"

echo -e "\n=== Looking for orchestrator links or URLs in docs ==="
rg -n "github\.com.*orchestrator" docs/ | head -10

echo -e "\n=== Checking directory structure ==="
ls -la | grep -i orchestrator
find . -maxdepth 3 -type d -name "*orchestrator*" 2>/dev/null

Repository: game-ci/documentation

Length of output: 4585


🏁 Script executed:

#!/bin/bash
# Examine the file under review
echo "=== Full content of preflight-tests.mdx ==="
cat -n docs/03-github-orchestrator/07-advanced-topics/13-preflight-tests.mdx | head -350 | tail -100

echo -e "\n=== Searching for examples of preflight inputs in docs ==="
rg -n "preflightSuite|preflightEnabled|preflightFailFast|preflightTimeout" docs/ -B2 -A2

Repository: game-ci/documentation

Length of output: 5458


🏁 Script executed:

#!/bin/bash
# Look for examples showing these inputs in use
echo "=== Searching for configuration examples with preflight inputs ==="
rg -n "preflightEnabled|preflightSuite|preflightFailFast|preflightTimeout" docs/ --context 10 | head -60

# Search for workflow files that might use orchestrator
echo -e "\n=== Looking for orchestrator workflow examples ==="
find docs -name "*.yml" -o -name "*.yaml" | xargs grep -l "preflight" 2>/dev/null

Repository: game-ci/documentation

Length of output: 1870


🌐 Web query:

game-ci orchestrator preflight configuration inputs schema

💡 Result:

GameCI's Orchestrator does not have a published JSON schema or formal schema for preflight configuration inputs. Instead, configuration is provided via CLI flags, environment variables, GitHub Action with inputs, or overrides.[1][2][3] The primary configuration schema is defined in the unity-builder GitHub Action's action.yml file, which Orchestrator uses.[2][4] Key inputs include: - targetPlatform (required): Platform to build (e.g., StandaloneLinux64, WebGL).[5][6] - unityVersion (default: 'auto'): Unity version from ProjectSettings/ProjectVersion.txt or specified.[5] - projectPath: Relative path to Unity project.[6] - buildMethod: Namespace.Class.StaticMethod for custom builds.[5][6] - customParameters: Additional build parameters.[5][6] - versioning (default: 'None'): Semantic, etc.[5][6] - providerStrategy: For Orchestrator (aws, k8s, local-docker, local).[1][7] Orchestrator-specific CLI parameters (from API Reference):[1] - orchestratorBranch (default: main): main, orchestrator-develop. - cloneDepth - providerStrategy [as above] - readInputOverrideCommand: For secrets (e.g., gcp-secret-manager).[8] - readInputFromOverrideList: Comma-separated params to override.[8] - Modes: cli-build (default), remote-cli-pre-build, remote-cli-post-build, cache commands.[1][9] Full list in https://github.com/game-ci/unity-builder/blob/main/action.yml [2] and docs API reference [1]. No explicit "preflight" mode/schema found; likely refers to pre-build setup or license validation in workflows.[9] Use yarn run cli --help for CLI param descriptions.[3]

Citations:


🌐 Web query:

site:github.com game-ci/unity-builder action.yml preflightSuite preflightEnabled

💡 Result:

No evidence found in the game-ci/unity-builder action.yml or official documentation for inputs named "preflightSuite" or "preflightEnabled". [1][2] The action.yml defines standard inputs like targetPlatform, unityVersion, projectPath, buildMethod, customParameters, versioning, buildProfile (added recently [3]), and recent orchestrator options like runnerCheckEnabled, providerStrategy, fallbackProviderStrategy (from PRs [4][5]). [1][2] "Preflight" appears in unrelated third-party projects (e.g., unity-cross-platform-local-build-orchestrator [6], unityctl [7]) and recent commits mention testSuitePath/testSuiteEvent for test workflows in orchestrator mode [5], but not matching the exact terms in unity-builder. GameCI docs recommend checking https://game.ci/docs/github/builder/ for full input list, which lists common options without preflightSuite/preflightEnabled. [2][8]

Citations:


🌐 Web query:

site:github.com game-ci/orchestrator preflight configuration inputs

💡 Result:

game-ci/orchestrator is a tool for remote build orchestration of game projects (primarily Unity, with plugins for others like Godot/Unreal), supporting providers like AWS Fargate (--providerStrategy aws), Kubernetes (k8s), local Docker (local-docker), GitHub Actions (github-actions), and more [1][2]. Configuration inputs are primarily CLI flags for the game-ci build or game-ci orchestrate commands, environment variables, or game-ci.yml files [3]. No explicit "preflight" configuration inputs or dedicated preflight mode are documented in the official README or related sources [1][2]. Builds likely include implicit validation (e.g., project path, credentials for cloud providers like AWS_ACCESS_KEY_ID [4]), but no specific preflight flags like --preflight or preflight config section are mentioned. Key configuration inputs from examples: - --providerStrategy (or --provider-strategy): e.g., aws, local-docker [1][2] - --projectPath: Path to the project [1] - --targetPlatform: e.g., StandaloneLinux64 [1] - --engine: e.g., godot (for plugins) [1] - --custom-job: For custom workflows [1] - Provider-specific: e.g., orchestratorCpu, orchestratorMemory for AWS Fargate (in YAML for GitHub Actions) [4] - Env vars: GAME_CI_VERSION, AWS credentials [1][4] For full CLI usage, run game-ci --help after installation [1]. Official docs at game-ci/documentation cover orchestrator setup, but no preflight details found [5][4][6]. "Preflight" appears in unrelated projects' contexts (e.g., validation checks) [7].

Citations:


Remove inputs reference table or verify orchestrator implementation for preflight inputs.

The documented inputs (preflightSuite, preflightEnabled, preflightFailFast, preflightTimeout) do not appear in the official orchestrator schema. Web search of the unity-builder action.yml and orchestrator README found no evidence of these inputs being implemented. The table at lines 306-313 documents configuration that users cannot actually use.

Clarify whether:

  • These inputs are planned but not yet implemented
  • They were removed in a recent version
  • The documentation refers to a different tool or legacy implementation
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/03-github-orchestrator/07-advanced-topics/13-preflight-tests.mdx` around
lines 306 - 313, The Inputs Reference table documents inputs (preflightSuite,
preflightEnabled, preflightFailFast, preflightTimeout) that are not present in
the orchestrator/action schema; either remove this table or update it to match
the real implementation. Inspect the orchestrator and unity-builder sources
(search for the exact input names preflightSuite, preflightEnabled,
preflightFailFast, preflightTimeout) to confirm whether these inputs exist, were
removed, or are planned; if they don't exist, delete the table and replace with
a note stating preflight inputs are not supported, or if they are
planned/legacy, add a clear remark indicating their status and link to the
correct implementation or roadmap.

@github-actions
Copy link
Copy Markdown

Cat Gif

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 14, 2026

Visit the preview URL for this PR (updated for commit 3f70237):

https://game-ci-5559f--pr572-docs-preflight-tests-ox7whc26.web.app

(expires Thu, 21 May 2026 23:04:13 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: 1f0574f15f83e11bfc148eae8646486a6d0e078b

@frostebite frostebite requested a review from webbertakken May 15, 2026 14:59
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