- Backend NestJS : CRUD api_entries + categories, upload YAML multi-fichiers, génération docs AsyncAPI (@asyncapi/cli@6.0.0) et OpenAPI (redocly) - Fix: route wildcard GET /api/apis/:id/*path pour servir les assets statiques (CSS/JS) générés par AsyncAPI HTML template (contournement bug path-to-regexp v8) - Frontend Angular 19 : pages catalog, browse, api-detail, doc-viewer, upload (DSFR) - Seeder de données de démo (idempotent) - Docker Compose dev + Dockerfiles + manifests K8s - Documentation : README, architecture, référence API REST Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
57 lines
2.2 KiB
YAML
57 lines
2.2 KiB
YAML
# Pipeline CI/CD pour datacat
|
|
|
|
steps:
|
|
# Build backend
|
|
build-back:
|
|
image: gcr.io/kaniko-project/executor:debug
|
|
commands:
|
|
- echo '{"auths":{"git.chmod777.dev":{"username":"'"$REGISTRY_USER"'","password":"'"$REGISTRY_PASSWORD"'"}}}' > /kaniko/.docker/config.json
|
|
- /kaniko/executor
|
|
--dockerfile=infra/Dockerfile.prod
|
|
--target=back
|
|
--context=dir:///woodpecker/src/git.chmod777.dev/z3n/datacat
|
|
--destination=git.chmod777.dev/z3n/datacat/back:${CI_COMMIT_SHA:0:8}
|
|
--destination=git.chmod777.dev/z3n/datacat/back:latest
|
|
--cache=true
|
|
environment:
|
|
REGISTRY_USER:
|
|
from_secret: registry_user
|
|
REGISTRY_PASSWORD:
|
|
from_secret: registry_password
|
|
|
|
# Build frontend
|
|
build-front:
|
|
image: gcr.io/kaniko-project/executor:debug
|
|
commands:
|
|
- echo '{"auths":{"git.chmod777.dev":{"username":"'"$REGISTRY_USER"'","password":"'"$REGISTRY_PASSWORD"'"}}}' > /kaniko/.docker/config.json
|
|
- /kaniko/executor
|
|
--dockerfile=infra/Dockerfile.prod
|
|
--target=front
|
|
--context=dir:///woodpecker/src/git.chmod777.dev/z3n/datacat
|
|
--build-arg ANGULAR_API_URL=https://api.datacat.dev.chmod777.dev
|
|
--destination=git.chmod777.dev/z3n/datacat/front:${CI_COMMIT_SHA:0:8}
|
|
--destination=git.chmod777.dev/z3n/datacat/front:latest
|
|
--cache=true
|
|
environment:
|
|
REGISTRY_USER:
|
|
from_secret: registry_user
|
|
REGISTRY_PASSWORD:
|
|
from_secret: registry_password
|
|
|
|
# Deploy sur K8s
|
|
deploy:
|
|
image: bitnami/kubectl:latest
|
|
environment:
|
|
KUBECONFIG: /tmp/kubeconfig.yaml
|
|
DEPLOY_KUBECONFIG:
|
|
from_secret: deploy_kubeconfig
|
|
commands:
|
|
- echo "$DEPLOY_KUBECONFIG" > /tmp/kubeconfig.yaml
|
|
- kubectl set image deployment/backend backend=git.chmod777.dev/z3n/datacat/back:${CI_COMMIT_SHA:0:8} -n datacat
|
|
- kubectl set image deployment/frontend frontend=git.chmod777.dev/z3n/datacat/front:${CI_COMMIT_SHA:0:8} -n datacat
|
|
- kubectl rollout status deployment/backend -n datacat --timeout=120s
|
|
- kubectl rollout status deployment/frontend -n datacat --timeout=120s
|
|
depends_on:
|
|
- build-back
|
|
- build-front
|