Skip to content

Commands

Installation

bash
# Add Biograph to your bench
bench get-app https://github.com/Tacten/biograph

# Install on a site
bench --site your-site.local install-app healthcare

# Run migrations after updates
bench --site your-site.local migrate

Frontend Build

bash
# Build patient portal (from repo root)
yarn build

# Or directly
cd patient_portal && yarn build

# Dev server (hot reload)
cd patient_portal && yarn dev

Testing

bash
# Run all tests (parallel)
bench --site test_site run-parallel-tests --app healthcare

Linting

bash
# Run all linters (ruff + semgrep)
pre-commit run --all-files

Common Bench Commands

bash
# Start development server
bench start

# Clear cache
bench --site your-site.local clear-cache

# Rebuild assets
bench build --app healthcare

# Open console
bench --site your-site.local console

# Export fixtures
bench --site your-site.local export-fixtures --app healthcare

CI/CD Workflows

WorkflowTriggerWhat it does
ci.ymlPRs + daily cronServer tests on MariaDB 11.8, Python 3.14, Node 24
linters.ymlAll PRsRuff + Semgrep code quality checks
codeql.ymlPRsCodeQL security analysis
docs_checker.ymlPRsDocumentation validation
generate-pot-file.ymlOn demandTranslation template generation
initiate_release.ymlManualRelease initiation
on_release.ymlRelease publishedRelease actions
release_notes.ymlOn demandRelease notes generation
semantic-commits.ymlPRsCommit message validation

Test Environment Setup (CI)

bash
# CI uses this helper script:
.github/helper/install.sh

# It does:
# 1. Clone frappe, erpnext, payments apps
# 2. bench init with specific frappe branch
# 3. Install all apps on test_site
# 4. Set developer_mode and test runner flags