deploy-kit zum Gitea-Template-Repo umbauen

Statt eines zweiten Repos wird deploy-kit selbst die Vorlage. Ein Template
kopiert das gesamte Repo, die Projektdateien muessen also im Wurzel-
verzeichnis liegen - template/ ist entsprechend aufgeloest.

- bootstrap.sh entfaellt: das Template uebernimmt seine Aufgabe, und
  Gitea kopiert serverseitig, funktioniert also auch bei privatem Repo.
- .gitea/template laesst Gitea ${REPO_NAME} in README.md und
  docker-compose.yml ersetzen. Projektname, Image und container_name
  stimmen damit ohne Handarbeit, offen bleibt nur der Port.
- CLAUDE.md zeigt auf DEPLOY.md, damit die Konventionen beim Arbeiten am
  erzeugten Projekt gelesen werden.
- DEPLOY.md liegt jetzt nur noch einmal - die Kopie im geplanten zweiten
  Repo waere unweigerlich auseinandergelaufen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-20 19:29:31 +02:00
parent 5b7418138e
commit f5bdb9a988
9 changed files with 70 additions and 111 deletions

View File

@@ -0,0 +1,50 @@
name: Build & Deploy
on:
push:
tags:
- 'v*'
jobs:
deploy:
runs-on: ubuntu-latest
steps:
# Intern klonen statt ueber die oeffentliche Domain: Gitea laeuft auf
# demselben Host, der Weg ueber die oeffentliche IP findet nicht
# zurueck (NAT-Hairpin). Der Job-Container erreicht Gitea ueber das
# Netz gitea-ci unter seinem Containernamen.
- uses: actions/checkout@v4
with:
github-server-url: http://gitea:3000
# --- Build & Tests: hier projektspezifisch anpassen ---
# - uses: actions/setup-node@v4
# with:
# node-version: '24'
# - run: npm ci
# - run: npm run build
# - run: npm test
# ------------------------------------------------------
- name: Tag ermitteln
run: echo "IMAGE_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
# Ein einziges Repo-Secret DOTENV mit dem kompletten .env-Inhalt
# (mehrzeilig). Ueber env: statt direkter Interpolation, damit
# Anfuehrungszeichen, Backticks und $ in den Werten unangetastet bleiben.
- name: .env aus Secret erzeugen
env:
DOTENV: ${{ secrets.DOTENV }}
run: |
if [ -z "$DOTENV" ]; then
echo "Secret DOTENV ist leer oder nicht gesetzt."
exit 1
fi
umask 077
echo "$DOTENV" > .env
- name: Deployen
run: docker compose up -d --build --remove-orphans --wait --wait-timeout 180
- name: Alte Layer aufraeumen
run: docker image prune -f