111 lines
3.1 KiB
YAML
111 lines
3.1 KiB
YAML
name: Vendoo CI
|
|
|
|
on:
|
|
push:
|
|
branches: [main, develop, 'feature/**', 'release/**', 'hotfix/**']
|
|
pull_request:
|
|
branches: [main, develop]
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
concurrency:
|
|
group: vendoo-ci-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
quality:
|
|
name: Syntax, Sicherheit und Release-Gates
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 25
|
|
steps:
|
|
- name: Repository auschecken
|
|
uses: actions/checkout@v6
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Node.js 22 aktivieren
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '22.x'
|
|
cache: npm
|
|
|
|
- name: Abhängigkeiten reproduzierbar installieren
|
|
run: npm ci
|
|
|
|
- name: Git-Sicherheitsgate
|
|
run: npm run verify:git
|
|
|
|
- name: Git-Sicherheitsgate Regressionstest
|
|
run: npm run verify:git-regression
|
|
|
|
- name: Git-Staging-Filter Regressionstest
|
|
run: npm run verify:git-staging
|
|
|
|
- name: Syntaxprüfung
|
|
run: npm run check
|
|
|
|
- name: ESM-Exportverträge prüfen
|
|
run: npm run verify:esm-exports
|
|
|
|
- name: FLUX-Loop-Hotfix prüfen
|
|
run: npm run verify:flux-loop
|
|
|
|
- name: Vollständigen Modul-Capability-Graph prüfen
|
|
run: npm run verify:capabilities
|
|
|
|
- name: Coolify-Deployment und Web-Updates prüfen
|
|
run: npm run verify:coolify
|
|
|
|
- name: Initial deaktivierte Module prüfen
|
|
run: npm run verify:initial-modules
|
|
|
|
- name: Plattformarchitektur und Design Tokens prüfen
|
|
run: npm run verify:architecture
|
|
|
|
- name: Theme Manager, Accessibility und Komponenten-Tokens prüfen
|
|
run: npm run verify:themes
|
|
|
|
- name: Security, Secrets und Observability prüfen
|
|
run: npm run verify:security
|
|
|
|
- name: Auth, Benutzer, Sitzungen und Einstellungen prüfen
|
|
run: npm run verify:identity
|
|
|
|
- name: Artikel, Lager und Medien prüfen
|
|
run: npm run verify:catalog
|
|
|
|
- name: Modulmanager, Pakete und Aktivierungsgrenzen prüfen
|
|
run: npm run verify:modules
|
|
|
|
- name: Deployment-Gate
|
|
run: npm run verify:deployment
|
|
|
|
- name: Persistenten Konfigurationsspeicher prüfen
|
|
run: npm run verify:config
|
|
|
|
- name: Geführte Shell-Installer simulieren
|
|
run: npm run verify:installer-shell
|
|
|
|
- name: Datenbankmigrationen prüfen
|
|
run: npm run verify:db
|
|
|
|
- name: Docker-Compose-Dateien validieren
|
|
run: |
|
|
cp .env.example .env
|
|
python - <<'PY'
|
|
from pathlib import Path
|
|
p=Path('.env')
|
|
s=p.read_text()
|
|
s=s.replace('VENDOO_SETUP_TOKEN=', 'VENDOO_SETUP_TOKEN=ci-only-not-a-production-secret-1234567890')
|
|
s=s.replace('VENDOO_DOMAIN=', 'VENDOO_DOMAIN=vendoo.example.invalid')
|
|
p.write_text(s)
|
|
PY
|
|
docker compose -f compose.yaml config -q
|
|
docker compose -f compose.yaml -f compose.bind-mounts.example.yaml config -q
|
|
docker compose -f compose.vps.yaml config -q
|
|
rm -f .env
|
|
|
|
- name: Docker-Image testweise bauen
|
|
run: docker build --pull --tag vendoo:ci .
|