113 lines
3.2 KiB
Markdown
113 lines
3.2 KiB
Markdown
# Automation
|
|
|
|
## Intentional Behavior
|
|
|
|
This repository is for customer debugging projects.
|
|
|
|
Customers are expected to upload broken code.
|
|
|
|
Because of that:
|
|
|
|
- Green workflow means automation completed.
|
|
- Red workflow means automation failed.
|
|
- Customer code errors are listed in `reports/errors.md`.
|
|
- Broken customer code does not fail the workflow red.
|
|
|
|
This behavior is intentional for DevPlus1.
|
|
|
|
## Workflows
|
|
|
|
### `validate.yml`
|
|
|
|
- Runs on `push`
|
|
- Runs on `pull_request`
|
|
- Uses runner label `linux-dev`
|
|
- Runs `tools/validate-code.sh`
|
|
- Prints `reports/errors.md` into Forgejo logs
|
|
- Fails only if the validation script crashes or `reports/errors.md` is missing
|
|
|
|
### `project-report.yml`
|
|
|
|
- Runs on `push`
|
|
- Runs on `pull_request`
|
|
- Uses runner label `linux-dev`
|
|
- Runs `tools/validate-code.sh`
|
|
- Runs `tools/project-report.sh`
|
|
- Prints report summaries into Forgejo logs
|
|
- Fails only if report generation crashes or required report files are missing
|
|
|
|
### `code-docs.yml`
|
|
|
|
- Runs on `push`
|
|
- Runs on `pull_request`
|
|
- Uses runner label `linux-dev`
|
|
- Runs `tools/generate-code-docs.sh`
|
|
- Prints code documentation summary output into Forgejo logs
|
|
- Fails only if the documentation script crashes or required code documentation reports are missing
|
|
|
|
## Scripts
|
|
|
|
### `tools/validate-code.sh`
|
|
|
|
- Recursively scans the repository
|
|
- Excludes common dependency and generated directories
|
|
- Validates supported files when tools are installed
|
|
- Always writes `reports/errors.md`
|
|
- Always prints a terminal summary
|
|
- Exits `0` even when customer code errors are found
|
|
- Exits non-zero only for automation/report generation failure
|
|
|
|
### `tools/project-report.sh`
|
|
|
|
- Generates project analysis reports
|
|
- Reads customer code error status when available
|
|
- Writes summary and generated-file tracking reports
|
|
- Exits non-zero only if the script itself cannot generate required outputs
|
|
|
|
### `tools/generate-code-docs.sh`
|
|
|
|
- Reads customer source files without modifying them
|
|
- Generates best-effort API, file-purpose, Unity lifecycle, and call-map reports
|
|
- Uses regex-based extraction and cautious wording
|
|
- Exits non-zero only if report generation fails
|
|
|
|
## Generated Report Files
|
|
|
|
- `reports/errors.md`
|
|
- `reports/project-flow.md`
|
|
- `reports/file-summary.md`
|
|
- `reports/languages.md`
|
|
- `reports/summary.md`
|
|
- `reports/generated-files.md`
|
|
- `reports/customer-code-status.txt`
|
|
- `reports/api-reference.md`
|
|
- `reports/file-purpose.md`
|
|
- `reports/unity-scripts.md`
|
|
- `reports/call-map.md`
|
|
- `reports/code-docs-summary.md`
|
|
|
|
## Validation Sample Files
|
|
|
|
The repository includes intentional validator fixtures under `tests/validation-samples/`.
|
|
|
|
These files exist to prove:
|
|
|
|
- valid samples are accepted
|
|
- broken samples are reported
|
|
- broken customer code does not force the workflow red
|
|
|
|
## Extending The System
|
|
|
|
To add more validators later:
|
|
|
|
1. Update `tools/validate-code.sh`
|
|
2. Document the validator in `docs/VALIDATORS.md`
|
|
3. Update `docs/AUTOMATION.md` and `docs/WORKFLOWS.md` if workflow behavior changes
|
|
4. Update `docs/CODEX_INSTRUCTIONS.md`
|
|
|
|
To add more code documentation extraction later:
|
|
|
|
1. Update `tools/generate-code-docs.sh`
|
|
2. Document new reports in `docs/REPORTS.md`
|
|
3. Document workflow changes in `docs/WORKFLOWS.md`
|
|
4. Update `docs/CODEX_INSTRUCTIONS.md`
|