Platform backbone (plan 2026-10-13-plattform-rueckgrat), reviewed tasks: - run roles api/worker/job/all with shared startup checks (Task 1) - schema and migration for DomainEvent, deliveries, JobRun, ThrottlerHit (Task 2) - audit, notifications and domain events written in the same transaction (Task 3) - dispatcher with SKIP LOCKED claims, retries and stale release (Task 4) - worker building blocks: tick, LISTEN/NOTIFY wake-up, health (Task 5) - worker process and entry points (Task 6) - throttler counters in Postgres (Task 19) - separate keys per purpose with key ring (Task 20) - public origin page without exact location (Task 22) - shop keys split into read and write (Task 23) - Kustomize base, components, overlay encry, CI validation (Task 26) Field capture T3 (plan 2026-10-13-t3-erfassung-am-stand), reviewed tasks: - brood frames, read endpoints, apiary overview and offline pack - network basics, offline queue v3, navigation sheets, form building blocks - new inspection with last-time hints and weather, varroa per day, treatment prefill, apiary page with round - inspection photo (Task 10) is implemented, review pending Not rolled out. Remaining tasks follow in later commits. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
69 lines
2.5 KiB
YAML
69 lines
2.5 KiB
YAML
name: Backend Image
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
tags: ["v*.*.*"]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build-and-push:
|
|
runs-on: docker-builder
|
|
env:
|
|
# Nur fuer Doku/OCI-Labels, siehe REGISTRY_PUSH fuer den eigentlichen Push.
|
|
REGISTRY: git.encry.de
|
|
# Cluster-interner Service-Name statt git.encry.de: Registry-Blob-
|
|
# Uploads (PUT) vertragen sich nicht mit dem Cloudflare-Proxy vor
|
|
# git.encry.de ("413 Payload Too Large" unabhaengig von der Groesse).
|
|
# Der Runner-Pod erreicht den Gitea-Service direkt ueber Kubernetes-DNS.
|
|
# Push und Pull landen im selben Registry-Pfad (Owner/Repo:Tag), der
|
|
# Hostname ist nur die Verbindung, daher bleibt der Pull in den
|
|
# k8s-Manifesten unveraendert ueber git.encry.de.
|
|
REGISTRY_PUSH: gitea:80
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Image-Namen in Kleinbuchstaben ermitteln
|
|
# OCI-Registries erlauben nur Kleinbuchstaben im Repository-Pfad;
|
|
# der Gitea-Owner-Name behaelt Gross-/Kleinschreibung bei.
|
|
id: image
|
|
run: echo "name=$(echo '${{ gitea.repository_owner }}/apicore-backend' | tr '[:upper:]' '[:lower:]')" >> "$GITEA_OUTPUT"
|
|
|
|
- name: Docker Buildx einrichten
|
|
uses: docker/setup-buildx-action@v3
|
|
with:
|
|
# REGISTRY_PUSH ist Klartext-HTTP (Gitea-Service intern ohne TLS)
|
|
# statt HTTPS — BuildKit lehnt das ohne diese Freigabe ab.
|
|
config-inline: |
|
|
[registry."gitea:80"]
|
|
http = true
|
|
|
|
- name: Bei der Gitea-Container-Registry anmelden
|
|
uses: docker/login-action@v3
|
|
with:
|
|
registry: ${{ env.REGISTRY_PUSH }}
|
|
username: ${{ gitea.actor }}
|
|
# GITEA_TOKEN hat kein Package-Write-Recht — separates Personal
|
|
# Access Token (Scope "package") als Secret REGISTRY_TOKEN anlegen.
|
|
password: ${{ secrets.REGISTRY_TOKEN }}
|
|
|
|
- name: Metadaten (Tags/Labels) ermitteln
|
|
id: meta
|
|
uses: docker/metadata-action@v5
|
|
with:
|
|
images: ${{ env.REGISTRY_PUSH }}/${{ steps.image.outputs.name }}
|
|
tags: |
|
|
type=sha,format=short
|
|
type=semver,pattern={{version}}
|
|
|
|
- name: Image bauen und pushen
|
|
uses: docker/build-push-action@v6
|
|
with:
|
|
context: ./ApiCore-Backend
|
|
push: true
|
|
tags: ${{ steps.meta.outputs.tags }}
|
|
labels: ${{ steps.meta.outputs.labels }}
|
|
cache-from: type=gha
|
|
cache-to: type=gha,mode=max
|