2026-05-01 18:00:04 +03:00
2026-04-25 21:08:21 +03:00
2026-04-25 21:08:21 +03:00

gitea-actions-templates

Reusable workflow-шаблоны для Gitea Actions. Покрывают полный CI/CD цикл: сборка образа, миграции БД, деплой в Kubernetes.

Быстрый старт

Для типового сервиса достаточно трёх строк — все параметры вычисляются автоматически из контекста репозитория:

jobs:
  build:
    uses: devops/gitea-actions-templates/.gitea/workflows/docker-build-and-push.yaml@develop

  migration:
    needs: build
    uses: devops/gitea-actions-templates/.gitea/workflows/prisma-migrate.yaml@develop

  deploy:
    needs: [migration, build]
    uses: devops/gitea-actions-templates/.gitea/workflows/k8s-deploy.yml@develop

Полный рабочий пример: base-cicd-example.yml


Динамически вычисляемые параметры

Следующие значения выводятся автоматически и не требуют явного указания:

Параметр Источник Пример
APP_NAME Имя репозитория my-service
VAULT_ROLE <org_lowercase>-vso-role infra-vso-role
PROD_NAMESPACE <org_lowercase> infra
DEV_NAMESPACE <org_lowercase>-dev infra-dev
PROD_KUBECONF_SECRET_PATH kv/data/ci-runners/jobs/deploy/kubeconfigs <org_lowercase>-prod ...kubeconfigs infra-prod
DEV_KUBECONF_SECRET_PATH kv/data/ci-runners/jobs/deploy/kubeconfigs <org_lowercase>-dev ...kubeconfigs infra-dev
PROD_PRISMA_SECRET_DB_PATH kv/data/ci-runners/jobs/migrate/<org_lowercase>/<APP_NAME> prod ...migrate/infra/my-service prod
DEV_PRISMA_SECRET_DB_PATH kv/data/ci-runners/jobs/migrate/<org_lowercase>/<APP_NAME> dev ...migrate/infra/my-service dev

<org_lowercase> — владелец репозитория в Gitea в нижнем регистре (например INFRAinfra).


Модули

docker-build-and-push.yaml — сборка и публикация Docker-образа

Собирает образ через Kaniko и пушит в registry. Секреты получает из Vault через Kubernetes auth.

Опциональные inputs (все имеют defaults):

Input Default Описание
APP_NAME имя репозитория Имя образа и Helm-release
REGISTRY registry.project-quest-dev.com Target registry
DOCKERFILE_PATH Dockerfile Путь к Dockerfile
REGISTRY_USER registry-bot Пользователь в registry
VAULT_URL https://vault.project-quest-dev.com URL Vault
VAULT_K8S_AUTH_PATH kubernetes-prod-infra Mount path k8s auth backend

k8s-deploy.yml — деплой Helm-чарта в Kubernetes

Разворачивает чарт из директории ./chart. Определяет среду (prod/dev) по ветке: main → prod, остальные → dev.

Опциональные inputs (все имеют defaults):

Input Default Описание
APP_NAME имя репозитория Имя Helm-release
REGISTRY registry.project-quest-dev.com Registry образа
REGISTRY_USER registry-bot Пользователь в registry
PROD_NAMESPACE <org_lowercase> Kubernetes namespace для prod
DEV_NAMESPACE <org_lowercase>-dev Kubernetes namespace для dev
PROD_VALUES_FILE chart/values-prod.yaml Values-файл для prod
DEV_VALUES_FILE chart/values-dev.yaml Values-файл для dev
PROD_KUBECONF_SECRET_PATH вычисляется Vault-путь к kubeconfig prod
DEV_KUBECONF_SECRET_PATH вычисляется Vault-путь к kubeconfig dev
HELM_VERSION 3.20.0 Версия Helm
CUSTOM_HELM_SET "" Дополнительные --set аргументы (поддерживает envsubst)
VAULT_URL https://vault.project-quest-dev.com URL Vault
VAULT_K8S_AUTH_PATH kubernetes-prod-infra Mount path k8s auth backend

prisma-migrate.yaml — Prisma-миграции

Применяет pending-миграции через prisma migrate deploy. Среда определяется по ветке: main → prod, остальные → dev.

Опциональные inputs (все имеют defaults):

Input Default Описание
APP_NAME имя репозитория Используется для построения Vault-пути
PROD_PRISMA_SECRET_DB_PATH вычисляется Vault-путь к DATABASE_URL для prod
DEV_PRISMA_SECRET_DB_PATH вычисляется Vault-путь к DATABASE_URL для dev
VAULT_URL https://vault.project-quest-dev.com URL Vault
VAULT_K8S_AUTH_PATH kubernetes-prod-infra Mount path k8s auth backend

Переопределение параметров

Любой вычисляемый параметр можно переопределить явно через with::

jobs:
  deploy:
    uses: devops/gitea-actions-templates/.gitea/workflows/k8s-deploy.yml@develop
    with:
      PROD_NAMESPACE: my-custom-namespace
      CUSTOM_HELM_SET: "--set ingress.host=my-app.example.com"
Description
This repo contains templates of cicd
Readme 199 KiB