modules = ["nodejs-24", "python-3.11", "php-8.4", "postgresql-16"]

[deployment]
router = "application"
deploymentTarget = "autoscale"

[deployment.postBuild]
args = ["pnpm", "store", "prune"]
env = { "CI" = "true" }

[workflows]
runButton = "Project"

[[workflows.workflow]]
name = "Project"
mode = "parallel"
author = "agent"

[[workflows.workflow.tasks]]
task = "workflow.run"
args = "api-server-test"

[[workflows.workflow.tasks]]
task = "workflow.run"
args = "db-migration-check"

[[workflows.workflow.tasks]]
task = "workflow.run"
args = "ssanu-smoke"

[[workflows.workflow]]
name = "api-server-test"
author = "agent"

[[workflows.workflow.tasks]]
task = "shell.exec"
args = "pnpm --filter @workspace/api-server run test"

[workflows.workflow.metadata]
isValidation = true

[[workflows.workflow]]
name = "db-migration-check"
author = "agent"

[[workflows.workflow.tasks]]
task = "shell.exec"
args = "cd lib/db && bash check-drift.sh"

[workflows.workflow.metadata]
isValidation = true

[[workflows.workflow]]
name = "ssanu-smoke"
author = "agent"

[[workflows.workflow.tasks]]
task = "shell.exec"
args = "pnpm --filter @workspace/ssanu run test:smoke"

[workflows.workflow.metadata]
isValidation = true

[agent]
stack = "PNPM_WORKSPACE"
expertMode = true
integrations = ["sendgrid:1.0.0"]

[postMerge]
path = "scripts/post-merge.sh"
timeoutMs = 180000

[nix]
channel = "stable-25_05"
packages = ["glib", "nspr", "nss", "atk", "at-spi2-atk", "cups", "dbus", "expat", "libdrm", "libxkbcommon", "pango", "cairo", "mesa", "xorg.libX11", "xorg.libxcb", "xorg.libXcomposite", "xorg.libXdamage", "xorg.libXext", "xorg.libXfixes", "xorg.libXrandr", "libgbm", "alsa-lib", "fontconfig", "freetype", "libuuid"]

[userenv]

[userenv.shared]
SENDGRID_FROM_EMAIL = "info@southsudanafricannationalunion.com"

[[ports]]
localPort = 8080
externalPort = 80

[[ports]]
localPort = 8081
externalPort = 8081

[[ports]]
localPort = 8082
externalPort = 3000

[[ports]]
localPort = 21539
externalPort = 3003

[[ports]]
localPort = 23588
externalPort = 3001

[[ports]]
localPort = 25081
externalPort = 3002
