# =============================================================================
# .ci/config.env — Central Configuration (Single Source of Truth)
# =============================================================================
# Repository: ${REPO_NAME}
# Generated from template: ${TEMPLATE_NAME}
# Created: ${YEAR}-${MONTH}-${DAY}
#
# All Gitea Actions workflows source this file at runtime.
# Adjust the toggles below to enable/disable features for YOUR project.
# See docs/CONFIG.md for detailed explanations of every flag.
# =============================================================================

# -----------------------------------------------------------------------------
# CI — Continuous Integration
# -----------------------------------------------------------------------------
# Master switch for CI. If false, the CI workflow exits immediately.
ENABLE_CI=true

# If true, lint/test failures cause the workflow to fail (exit 1).
# If false, failures are logged as warnings but the workflow succeeds.
CI_STRICT=true

# The primary branch name. Used by Docker and other workflows.
DEFAULT_BRANCH=main

# -----------------------------------------------------------------------------
# Docker — Build & Push
# -----------------------------------------------------------------------------
# Master switch for Docker build steps. If false, docker.yml skips entirely.
ENABLE_DOCKER=true

# Whether to actually push images to the registry.
# SAFE DEFAULT: false — images are built but never pushed until you opt in.
DOCKER_PUSH=false

# Push images when a commit lands on DEFAULT_BRANCH?
DOCKER_PUSH_ON_BRANCH=true

# Push images when a semver tag (v*) is pushed?
DOCKER_PUSH_ON_TAG=true

# Registry hostname. For Gitea's built-in container registry this is usually
# the same as your Gitea instance domain.
REGISTRY_HOST=git.hiddenden.cafe

# Image owner (org or user). "auto" = derived at runtime from the repo context.
IMAGE_OWNER=auto

# Image name. "auto" = derived at runtime from the repository name.
IMAGE_NAME=auto

# Tag strategy. Controls which tags are applied to pushed images.
# Options:
#   semver+latest   — tag vX.Y.Z → :X.Y.Z and :latest  (default)
#   semver          — tag vX.Y.Z → :X.Y.Z only
#   branch          — branch pushes only, tagged as :branchname
# Branch pushes always produce :branchname when DOCKER_PUSH_ON_BRANCH=true.
DOCKER_TAG_STRATEGY=semver+latest

# -----------------------------------------------------------------------------
# Security Scanning
# -----------------------------------------------------------------------------
# Master switch for security workflows. SAFE DEFAULT: false.
ENABLE_SECURITY=false

# If true, any finding fails the workflow. If false, findings are warnings only.
STRICT_SECURITY=false

# -----------------------------------------------------------------------------
# Renovate — Automated Dependency Updates
# -----------------------------------------------------------------------------
# Master switch for Renovate. SAFE DEFAULT: false.
ENABLE_RENOVATE=false

# How often Renovate runs. Cron-style or preset: daily, weekly, monthly.
RENOVATE_SCHEDULE=weekly

# Maximum number of open PRs Renovate can create at once.
RENOVATE_PR_LIMIT=5

# -----------------------------------------------------------------------------
# Deploy — Automated Deployment to VPS
# -----------------------------------------------------------------------------
# Master switch for deployment. SAFE DEFAULT: false.
# Deploy NEVER runs unless you explicitly set this to true.
ENABLE_DEPLOY=false

# Deployment mode. Determines HOW the deploy job reaches the VPS.
#   local-runner — The job runs directly on a self-hosted act_runner installed
#                  on the VPS. No SSH needed. The runner is selected by label.
#   ssh          — The job runs on any runner and SSHs into the VPS to execute
#                  deploy commands remotely. Requires SSH secrets.
DEPLOY_MODE=local-runner

# Runner label for local-runner mode. The act_runner on your VPS must be
# registered with this label. Gitea selects the runner via runs-on.
# Examples: deploy-ovh, vps-prod, deploy-hetzner
DEPLOY_RUNNER_LABEL=deploy-ovh

# Working directory on the VPS where your project lives.
# For local-runner mode this is a local path; for ssh mode it's the remote path.
DEPLOY_WORKDIR=/opt/${REPO_NAME}

# Deploy strategy. Determines WHAT happens on the VPS.
#   compose  — cd into DEPLOY_WORKDIR, pull new images, recreate containers
#   systemd  — restart a systemd service
#   script   — run a custom deploy script
DEPLOY_STRATEGY=compose

# (compose) Path to the compose file, relative to DEPLOY_WORKDIR.
DEPLOY_COMPOSE_FILE=docker-compose.yml

# (systemd) Name of the systemd service to restart. Required if strategy=systemd.
DEPLOY_SYSTEMD_SERVICE=

# (script) Path to a custom deploy script, relative to the repo root.
# The script receives DEPLOY_WORKDIR as $1.
DEPLOY_SCRIPT=scripts/deploy.sh

# Also deploy when a semver tag (v*) is pushed? Default: false.
DEPLOY_ON_TAG=false
