Files
Luncher/.woodpecker/workflow.yaml
T
batmanisko 467e3c155a fix: E2E testy přepnuty na json storage, odstraněna Redis služba
redis/redis-stack-server:7.2.0-RC3 havaroval v CI kvůli chybě
inicializace RedisAI modulu, takže se server nikdy nepřipojil
a webServer timeout vyprchával. E2E testy testují chování aplikace,
ne storage backend – json storage stačí.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 18:45:26 +02:00

116 lines
3.2 KiB
YAML

variables:
- &node_image "node:22-alpine"
- &playwright_image "mcr.microsoft.com/playwright:v1.59.1-jammy"
- &branch "master"
# Spustit na všech větvích a pull requestech.
# Docker build probíhá jen na master větvi (viz when: v posledních krocích).
when:
- event: [push, pull_request]
steps:
- name: Generate TypeScript types
image: *node_image
commands:
- cd types
- yarn install --frozen-lockfile
- yarn openapi-ts
- name: Install server dependencies
image: *node_image
commands:
- cd server
- yarn install --frozen-lockfile
depends_on: [Generate TypeScript types]
- name: Install client dependencies
image: *node_image
commands:
- cd client
- yarn install --frozen-lockfile
depends_on: [Generate TypeScript types]
- name: Install e2e dependencies
image: *playwright_image
commands:
- cd e2e
- yarn install --frozen-lockfile
depends_on: [Generate TypeScript types]
- name: Server unit tests
image: *node_image
environment:
NODE_ENV: test
JWT_SECRET: test-secret-min-32-chars-aaaaaaa!
MOCK_DATA: "true"
STORAGE: json
commands:
- cd server
- yarn test
depends_on: [Install server dependencies]
- name: Build server
image: *node_image
commands:
- cd server
- yarn build
depends_on: [Install server dependencies]
- name: Build client
image: *node_image
commands:
- cd client
- yarn build
depends_on: [Install client dependencies]
- name: Playwright E2E tests
image: *playwright_image
environment:
CI: "true"
NODE_ENV: test
JWT_SECRET: test-secret-min-32-chars-aaaaaaa!
MOCK_DATA: "true"
STORAGE: json
HTTP_REMOTE_USER_ENABLED: "true"
HTTP_REMOTE_USER_HEADER_NAME: remote-user
HTTP_REMOTE_TRUSTED_IPS: "127.0.0.1,::1,::ffff:127.0.0.1"
commands:
# Zkopírujeme build klienta do server/public, aby Express mohl SPA servírovat
- cp -r client/dist server/public
- cd e2e
- yarn playwright install firefox --with-deps
- yarn test
depends_on: [Build server, Build client, Install e2e dependencies]
- name: Build Docker image
depends_on: [Build server, Build client]
image: woodpeckerci/plugin-docker-buildx
when:
- event: push
branch: *branch
settings:
dockerfile: Dockerfile-Woodpecker
platforms: linux/amd64
registry:
from_secret: REPO_URL
username:
from_secret: REPO_USERNAME
password:
from_secret: REPO_PASSWORD
repo:
from_secret: REPO_NAME
- name: Discord notification - build
image: appleboy/drone-discord
depends_on: [Build Docker image]
when:
- status: [success, failure]
event: push
branch: *branch
settings:
webhook_id:
from_secret: DISCORD_WEBHOOK_ID
webhook_token:
from_secret: DISCORD_WEBHOOK_TOKEN
message: "{{#success build.status}}✅ Sestavení {{build.number}} proběhlo úspěšně.{{else}}❌ Sestavení {{build.number}} selhalo.{{/success}}\n\nPipeline: {{build.link}}\nPoslední commit: {{commit.message}}Autor: {{commit.author}}"