If your stack is not natively mapped yet, use Devflow with stack = ["custom"].
This keeps canonical Devflow commands while delegating implementation details to your existing build tool.
Step 1: Initialize with Kotlin Template¶
dwf init kotlinThis generates a custom stack config and starter CI workflow.
Step 2: Provide Targets in justfile or Makefile¶
Example Makefile:
fmt-check:
./gradlew ktlintCheck
lint-static:
./gradlew detekt
build-debug:
./gradlew build -x test
test-unit:
./gradlew test
test-integration:
./gradlew integrationTestStep 3: Run Canonical Commands¶
dwf check:pr
dwf ci:generate
dwf ci:checkRoadblock Avoidance Checklist¶
keep target names aligned with canonical selectors (
:->-)ensure your local runner (
justormake) is installed in both local and CI imagesstart with
fmt:check,lint:static,build:debug,test:unit; add more selectors incrementallyuse
dwf --stdout ci:generateto inspect workflow output before overwriting files