Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# BuildPlane local development configuration.
#
# Copy this file to .env and change values for your machine:
#
# cp .env.example .env
#
# The committed defaults are synthetic local-development values only.
# Do not commit real API keys, production database URLs, or cloud credentials.

# PostgreSQL container settings used by Docker Compose.
POSTGRES_USER=buildplane
POSTGRES_PASSWORD=buildplane_dev_password
POSTGRES_DB=buildplane
BUILDPLANE_POSTGRES_PORT=5432

# Redis container settings used by Docker Compose.
BUILDPLANE_REDIS_PORT=6379

# Host-local service ports.
BUILDPLANE_API_PORT=8080
BUILDPLANE_AI_SERVICE_PORT=8090
BUILDPLANE_WEB_PORT=5173

# Host-local URLs for running Go/Python processes directly from your shell.
BUILDPLANE_DATABASE_URL=postgres://buildplane:buildplane_dev_password@localhost:5432/buildplane?sslmode=disable
BUILDPLANE_REDIS_URL=redis://localhost:6379/0
BUILDPLANE_AI_SERVICE_URL=http://localhost:8090
BUILDPLANE_MIGRATIONS_DIR=migrations

# Docker-internal URLs for services running inside docker-compose.
BUILDPLANE_DOCKER_DATABASE_URL=postgres://buildplane:buildplane_dev_password@postgres:5432/buildplane?sslmode=disable
BUILDPLANE_DOCKER_REDIS_URL=redis://redis:6379/0
BUILDPLANE_DOCKER_AI_SERVICE_URL=http://ai-service:8090
BUILDPLANE_DOCKER_MIGRATIONS_DIR=/migrations

# Runtime tuning.
BUILDPLANE_SCHEDULER_BATCH_SIZE=10
BUILDPLANE_SCHEDULER_INTERVAL=2s
BUILDPLANE_WORKER_LEASE_DURATION=30s
BUILDPLANE_WORKER_DRAIN_TIMEOUT=25s

# AI provider configuration.
# Use "mock" for deterministic local development.
# Use "openai" only when OPENAI_API_KEY is set in your private .env.
BUILDPLANE_AI_PROVIDER=mock
BUILDPLANE_AI_PROMPT_VERSION=issue_classifier_v1
OPENAI_API_KEY=

# Optional frontend override. Leave empty to use the Vite /api proxy locally.
VITE_BUILDPLANE_API_BASE_URL=
24 changes: 22 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,27 @@ jobs:
run: helm lint deploy/helm/buildplane

- name: Render Helm chart
run: helm template buildplane deploy/helm/buildplane --namespace buildplane-system --include-crds --values deploy/helm/buildplane/values-gke.example.yaml
run: |
mkdir -p /tmp/buildplane-ci
helm template buildplane deploy/helm/buildplane \
--namespace buildplane-system \
--include-crds \
--values deploy/helm/buildplane/values-gke.example.yaml \
> /tmp/buildplane-ci/buildplane-gke.yaml
helm template buildplane deploy/helm/buildplane \
--namespace buildplane-system \
--include-crds \
--values deploy/helm/buildplane/values-kind.yaml \
> /tmp/buildplane-ci/buildplane-kind.yaml

- name: Assert external database Secret references
run: ruby scripts/assert_helm_database_secret_refs.rb /tmp/buildplane-ci/buildplane-gke.yaml

- name: Assert local kind database Secret references
run: ruby scripts/assert_helm_database_secret_refs.rb /tmp/buildplane-ci/buildplane-kind.yaml
env:
EXPECT_RENDERED_DATABASE_SECRET: "1"
EXPECT_POSTGRES_STATEFULSET: "1"

- name: Set up Terraform
uses: hashicorp/setup-terraform@v3
Expand All @@ -139,7 +159,7 @@ jobs:

- name: Validate Kubernetes manifests
run: |
ruby -e 'require "yaml"; %w[deploy/kind/buildplane-control-plane.yaml deploy/kind/buildplane-config.yaml deploy/kind/buildplane-rbac.yaml deploy/kind/buildplane-redis.yaml deploy/kind/buildplane-scheduler-worker.yaml deploy/kind/buildplane-ai-service.yaml deploy/kind/buildplane-runtime-crd.yaml deploy/kind/buildplane-operator.yaml deploy/kind/buildplane-runtime-sample.yaml deploy/kind/buildplane-observability.yaml].each { |path| YAML.load_stream(File.read(path)) }'
ruby -e 'require "yaml"; %w[deploy/kind/buildplane-control-plane.yaml deploy/kind/buildplane-config.yaml deploy/kind/buildplane-postgres.yaml deploy/kind/buildplane-rbac.yaml deploy/kind/buildplane-redis.yaml deploy/kind/buildplane-scheduler-worker.yaml deploy/kind/buildplane-ai-service.yaml deploy/kind/buildplane-runtime-crd.yaml deploy/kind/buildplane-operator.yaml deploy/kind/buildplane-runtime-sample.yaml deploy/kind/buildplane-observability.yaml].each { |path| YAML.load_stream(File.read(path)) }'

- name: Validate JSON examples
run: |
Expand Down
Loading
Loading