Files
csgowtf/.woodpecker.yml
vikingowl 288438a953 feat: complete Phase 1 - Technical Foundations for CS2.WTF rewrite
Initialize SvelteKit project with complete modern web development stack:

## Core Framework
- SvelteKit 2.0 with Svelte 5 and TypeScript strict mode
- Vite 5 for blazing fast dev server and builds
- Node.js 20 standardized via .nvmrc

## Styling & Theming
- Tailwind CSS 3.4 with utility-first approach
- DaisyUI 4.0 with custom CS2 themes (cs2dark/cs2light)
- CS2-branded color palette (T-side orange, CT-side blue)
- PostCSS for CSS processing

## Code Quality & Tooling
- ESLint 8 with TypeScript + Svelte plugins
- Prettier 3 with Svelte + Tailwind plugins
- Stylelint 16 for CSS linting
- Husky 9 + lint-staged for pre-commit hooks
- TypeScript 5.3 with all strict flags enabled

## Testing Infrastructure
- Vitest 1.0 for unit/component tests with jsdom
- Playwright 1.40 for E2E tests (3 browsers)
- Testing Library for component testing
- MSW 2.0 for API mocking
- Coverage thresholds set to 80%

## Project Structure
- Organized src/ with lib/, routes/, mocks/, tests/
- Component directories: layout, ui, charts, match, player
- Path aliases configured: $lib, $components, $stores, $types, $api
- Separate test directories: unit, integration, e2e

## CI/CD & Deployment
- Updated Woodpecker CI pipeline with quality gates
- Pipeline steps: install → lint → type-check → test → build
- Deploy targets: master (prod), dev (staging), cs2-port (preview)

## Documentation
- Comprehensive README.md with setup guide
- API.md with complete backend documentation (12 endpoints)
- TODO.md updated with Phase 0 & 1 completion
- Environment variables template (.env.example)

## Development Experience
- Hot module reloading configured
- Dev server running on port 5173
- All npm scripts defined for dev, test, build workflows
- Pre-commit hooks prevent broken code commits

Project is now ready for feature development (Phase 2+).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 19:54:35 +01:00

101 lines
1.9 KiB
YAML

pipeline:
install:
image: node:20
commands:
- npm ci
pull: true
lint:
image: node:20
commands:
- npm run lint
depends_on:
- install
pull: true
type-check:
image: node:20
commands:
- npm run check
depends_on:
- install
pull: true
test:
image: node:20
commands:
- npm run test
depends_on:
- install
pull: true
build:
image: node:20
commands:
- npm run build
environment:
- VITE_API_BASE_URL=https://api.csgow.tf
secrets:
- vite_plausible_domain
- vite_sentry_dsn
depends_on:
- lint
- type-check
- test
pull: true
# E2E tests (optional - can be resource intensive)
# test-e2e:
# image: mcr.microsoft.com/playwright:v1.40.0-jammy
# commands:
# - npm run test:e2e
# depends_on:
# - build
deploy:
image: cschlosser/drone-ftps
settings:
hostname:
from_secret: ftp_host
src_dir: "/build/"
clean_dir: true
secrets: [ ftp_username, ftp_password ]
when:
branch: master
event: [ push, tag ]
status: success
deploy-dev:
image: cschlosser/drone-ftps
settings:
hostname:
from_secret: ftp_host
src_dir: "/build/"
clean_dir: true
secrets:
- source: ftp_username_dev
target: ftp_username
- source: ftp_password_dev
target: ftp_password
when:
branch: dev
event: [ push, tag ]
status: success
deploy-cs2:
image: cschlosser/drone-ftps
settings:
hostname:
from_secret: ftp_host_cs2
src_dir: "/build/"
clean_dir: true
secrets:
- source: ftp_username_cs2
target: ftp_username
- source: ftp_password_cs2
target: ftp_password
when:
branch: cs2-port
event: [ push ]
status: success