Files
HonzaandClaude Opus 5 c8e435139e
CI / test (push) Failing after 1m42s
CI / build-and-push (push) Has been skipped
Scaffold webu na Payload CMS 3 + Next.js nad SQLite
Kostra prezentace s vlastní administrací pro Martina Reinera.

Obsah:
- kolekce Products (obrázky, volné parametry, cena, dostupnost, skrytí),
  Media se zmenšeninami, Pages, Users bez veřejné registrace
- veřejná část: výpis nabídky, detail položky, statické stránky
- /api/health pro Docker HEALTHCHECK

Provoz:
- Dockerfile, docker-compose.yml (vývoj) a docker-compose.prod.yml
  (nasazení z Gitea registry)
- CI v Gitea Actions: lint -> testy -> build -> push image
- úvodní migrace databáze

Stránky jsou force-dynamic, aby se úprava položky projevila hned;
schéma se za běhu nedomýšlí (push: false), migrace se commitují.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-30 13:13:23 +02:00

74 lines
2.0 KiB
YAML

name: CI
# Spustí se při pushi do devel/release a jde i ručně spustit z GUI.
on:
push:
branches: [devel, release]
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "22"
- name: Zapnutí pnpm
run: corepack enable
- name: Instalace závislostí
run: pnpm install --frozen-lockfile
- name: ESLint
run: pnpm lint
- name: Testy
run: pnpm test
env:
PAYLOAD_SECRET: ci-placeholder-min-32-znaku-dlouhy-retezec
DATABASE_URI: file:./data/ci.db
# `next build` uvnitř sebe spouští i kontrolu typů.
- name: Build
run: pnpm build
env:
PAYLOAD_SECRET: ci-placeholder-min-32-znaku-dlouhy-retezec
DATABASE_URI: file:./data/ci.db
build-and-push:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# Docker jméno musí být malými písmeny (Honza/Zbrane-Reiner-Web -> honza/zbrane-reiner-web)
- name: Název image
run: |
echo "IMAGE=gitea.doubynet.eu/$(echo '${{ github.repository }}' \
| tr '[:upper:]' '[:lower:]')" >> "$GITHUB_ENV"
# release -> latest (produkce), devel -> devel (staging)
- name: Značka podle větve
run: |
if [ "${{ github.ref_name }}" = "release" ]; then
echo "MOVING_TAG=latest" >> "$GITHUB_ENV"
else
echo "MOVING_TAG=devel" >> "$GITHUB_ENV"
fi
- name: Přihlášení do Gitea registry
run: |
echo '${{ secrets.REGISTRY_TOKEN }}' \
| docker login gitea.doubynet.eu -u '${{ github.actor }}' --password-stdin
- name: Build image
run: docker build -t "$IMAGE:$MOVING_TAG" -t "$IMAGE:${{ github.sha }}" .
- name: Push image
run: |
docker push "$IMAGE:$MOVING_TAG"
docker push "$IMAGE:${{ github.sha }}"