41 lines
1.1 KiB
YAML
41 lines
1.1 KiB
YAML
name: Build & Deploy
|
||
|
||
on:
|
||
push:
|
||
tags:
|
||
- 'v*'
|
||
|
||
jobs:
|
||
deploy:
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
# Intern klonen (NAT-Hairpin: öffentliche Domain aus dem Job-Container
|
||
# nicht erreichbar).
|
||
- uses: actions/checkout@v4
|
||
with:
|
||
github-server-url: http://gitea:3000
|
||
|
||
# Der Vite-Build läuft im Docker-Build (mehrstufiges Dockerfile). Die
|
||
# .env liefert VITE_DIRECTUS_URL (Build-Arg) – Compose liest sie beim
|
||
# `up --build` automatisch für die Variablen-Ersetzung.
|
||
|
||
- name: Tag ermitteln
|
||
run: echo "IMAGE_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
|
||
|
||
- name: .env aus Secret erzeugen
|
||
env:
|
||
DOTENV: ${{ secrets.DOTENV }}
|
||
run: |
|
||
if [ -z "$DOTENV" ]; then
|
||
echo "Secret DOTENV ist leer oder nicht gesetzt (mind. VITE_DIRECTUS_URL)."
|
||
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 aufräumen
|
||
run: docker image prune -f
|