Files
client/mise.toml
2026-03-07 19:46:19 +01:00

110 lines
3.9 KiB
TOML

[tools]
rust = "latest"
# ─── Core Development ──────────────────────────────────────────────
[tasks.develop]
description = "Start the forage development server"
run = "cargo run -p forage-server"
[tasks.build]
description = "Build release binary"
run = "cargo build --release -p forage-server"
[tasks.compile]
description = "Build entire workspace in release mode"
run = "cargo build --release"
[tasks.test]
description = "Run all tests"
run = "cargo test --workspace"
[tasks.check]
description = "Run cargo check and clippy"
run = ["cargo check --workspace", "cargo clippy --workspace -- -D warnings"]
[tasks.fmt]
description = "Format all code"
run = "cargo fmt"
[tasks."fmt:check"]
description = "Check formatting"
run = "cargo fmt -- --check"
# ─── CI Pipelines ──────────────────────────────────────────────────
[tasks."ci:pr"]
description = "Run PR pipeline (check, test, build)"
run = "cargo run -p ci -- pr"
[tasks."ci:main"]
description = "Run main pipeline (check, test, build, publish)"
run = "cargo run -p ci -- main"
# ─── Docker ────────────────────────────────────────────────────────
[tasks."docker:build"]
description = "Build forage-server Docker image"
run = "docker build -f templates/forage-server.Dockerfile -t forage/forage-server:dev ."
[tasks."docker:publish"]
description = "Build and publish Docker image with tags"
run = """
COMMIT=$(git rev-parse --short HEAD)
TIMESTAMP=$(date +%Y%m%d%H%M%S)
REGISTRY=${CI_REGISTRY:-registry.forage.sh}
IMAGE=${CI_IMAGE_NAME:-forage/forage-server}
docker build -f templates/forage-server.Dockerfile \
-t $REGISTRY/$IMAGE:latest \
-t $REGISTRY/$IMAGE:$COMMIT \
-t $REGISTRY/$IMAGE:$TIMESTAMP \
.
docker push $REGISTRY/$IMAGE:latest
docker push $REGISTRY/$IMAGE:$COMMIT
docker push $REGISTRY/$IMAGE:$TIMESTAMP
"""
# ─── Local Infrastructure ──────────────────────────────────────────
[tasks."local:up"]
description = "Start local services (postgres)"
run = "docker compose -f templates/docker-compose.yaml up -d --wait"
[tasks."local:down"]
description = "Stop and remove local services"
run = "docker compose -f templates/docker-compose.yaml down -v"
[tasks."local:logs"]
description = "Tail local service logs"
run = "docker compose -f templates/docker-compose.yaml logs -f"
# ─── Database ──────────────────────────────────────────────────────
[tasks."db:shell"]
description = "Connect to local postgres"
run = "psql postgresql://forageuser:foragepassword@localhost:5432/forage"
[tasks."db:migrate"]
description = "Run database migrations"
run = "cargo sqlx migrate run --source crates/forage-db/src/migrations"
[tasks."db:prepare"]
description = "Prepare sqlx offline query cache"
run = "cargo sqlx prepare --workspace"
# ─── Tailwind CSS ──────────────────────────────────────────────────
[tasks."tailwind:build"]
description = "Build tailwind CSS"
run = "npx @tailwindcss/cli -i static/css/input.css -o static/css/style.css --minify"
[tasks."tailwind:watch"]
description = "Watch and rebuild tailwind CSS"
run = "npx @tailwindcss/cli -i static/css/input.css -o static/css/style.css --watch"
# ─── Forest Commands ───────────────────────────────────────────────
[tasks."forest:run"]
description = "Run a forest command"
run = "forest run {{arg(name='cmd')}}"