Stack Detection¶
Workflow: _build-*.yml (embedded in orchestrator)
Runs: Always (first job)
How Detection Works¶
The detect job is the brain of the pipeline. It runs first, scans the repository for known project files, and outputs boolean flags that control which downstream workflows launch.
detect ──► has_pom=true ──► Java builds
──► has_package_json=true ──► Node builds
──► has_dockerfile=true ──► Docker builds
──► ...
Detection Rules¶
| Output | Detected by | Depth |
|---|---|---|
has_pom | pom.xml exists | root |
has_gradle | build.gradle or build.gradle.kts | root |
has_package_json | package.json exists | root |
has_angular | angular.json exists | root |
has_cargo | Cargo.lock exists | root |
has_go | any *.go file | 4 levels deep |
has_python | setup.py or pyproject.toml | root |
has_dotnet | any *.sln or *.csproj | 3 levels deep |
has_php | any *phpunit* file | 4 levels deep |
has_dockerfile | Dockerfile (configurable) | root |
has_helm | .helmignore exists | root |
has_mkdocs | mkdocs.yml exists | 4 levels deep |
has_sql | any *.sql file | 4 levels deep |
has_hurl | any *.hurl file | 4 levels deep |
has_cypress | cypress.config.* | 4 levels deep |
has_playwright | playwright.config.* | 4 levels deep |
has_tox | tox.ini or tox.toml | root |
has_django | manage.py exists | root |
has_twig | any *.twig file | 4 levels deep |
Package Manager Detection¶
For Node.js projects, the pipeline also detects the package manager:
| Lock file | Manager |
|---|---|
pnpm-lock.yaml | pnpm |
yarn.lock | yarn |
| (default) | npm |
Summary Output¶
The detect job generates a GitHub Step Summary table showing all detection results, making it easy to verify what was found.