Commit graph

30 commits

Author SHA1 Message Date
Pier-Jean Malandrino
7577a98415 fix(ci): pin Trivy to latest in release-gate (v0.69.3 was yanked)
Some checks failed
Release Docker Images / Build & push — local (push) Has been cancelled
Release Docker Images / Build & push — remote (push) Has been cancelled
aquasecurity/trivy-action@v0.35.0 defaults to Trivy CLI v0.69.3, but
that tag was removed from GitHub releases mid-run on 2026-04-29 — the
HIGH step on Security scan — local started failing at setup time:

  aquasecurity/trivy info checking GitHub for tag 'v0.69.3'
  aquasecurity/trivy crit unable to find 'v0.69.3'
  ##[error]Process completed with exit code 1.

The CRITICAL step still passed (binary was in cache from a prior run),
so this only surfaced as a HIGH-step failure — but the job exit code
still propagates and breaks the gate.

Following `latest` rather than chasing a specific tag that upstream
can yank without notice.

Refs #189
2026-04-29 14:00:00 +02:00
Pier-Jean Malandrino
a7fbdf7b1b fix(ci): wire .trivyignore.yaml into release-gate Trivy scans
The CRITICAL + HIGH Trivy steps in release-gate.yml were invoking
aquasecurity/trivy-action without the `trivyignores` input, so the
.trivyignore.yaml at the repo root (committed in #190 to mitigate
CVE-2026-40393 / Mesa) was silently ignored — the gate kept failing
on a CVE we explicitly chose to defer.

Pass `trivyignores: .trivyignore.yaml` to both Trivy steps so the file
takes effect. The HIGH step also gets it for consistency (it doesn't
fail the gate, but reporting a CVE we ignore as HIGH would be noise).

Refs #189
2026-04-29 14:00:00 +02:00
Pier-Jean Malandrino
d0c77b7618 fix(ci): install pytestarch in backend tests job (#177)
CI was missing pytestarch dependency, causing test_architecture.py to fail
at collection time. Switch to requirements-test.txt which includes all
test dependencies.
2026-04-29 14:00:00 +02:00
Pier-Jean Malandrino
19fa3e31a8 fix(ci): download only required artifacts in release summary
The Release summary job was downloading ALL artifacts (~780 MB)
including Docker images it never uses. The 648 MB docker-image-local
consistently timed out after 5 retries. Now downloads only the 4
small artifacts actually needed (~2 KB total).
2026-04-10 09:58:33 +02:00
Pier-Jean Malandrino
ce6661ddcf fix(ci): pin GitHub Actions to Node 24-compatible versions
checkout v4 → v4.3.1, upload-artifact v4 → v4.6.2,
download-artifact v4 → v4.3.0 — fixes artifact download failures
caused by Node.js 20 deprecation on GitHub runners.
2026-04-10 09:41:25 +02:00
Pier-Jean Malandrino
527bf0b6cd revert: restore @critical tag for e2e UI tests in release-gate 2026-04-10 08:40:51 +02:00
Pier-Jean Malandrino
81d4c445e1 fix(ci): use @ui tag instead of @critical for e2e UI tests 2026-04-09 17:23:59 +02:00
Pier-Jean Malandrino
0e5e088438 fix(ci): fix Trivy action version (v0.35.0) 2026-04-09 13:36:49 +02:00
Pier-Jean Malandrino
2aa56d8ca2 fix(ci): fix audit-checks crash (set -e + grep exit code + ANSI in output) 2026-04-09 13:25:15 +02:00
Pier-Jean Malandrino
3c9d09c4e2 ci: remove duplicate push trigger from release-gate 2026-04-09 13:22:25 +02:00
Pier-Jean Malandrino
941028e705 ci: add release-gate pipeline, fix CI duplication, add OSS playbook docs
- Add release-gate.yml: 11-job pipeline (lint, tests, Docker build/smoke,
  Trivy scan, dep audit, audit checks, e2e API+UI, PR summary comment)
- Fix CI double-trigger on release branches (push + PR)
- Add CODE_OF_CONDUCT.md, SECURITY.md, PR template
- Add docs: git-workflow, architecture (ADR), release, operations, community
- Add profiles/fastapi-vue for automated audit checks
- Add docs/PROCESSES.md: index of 19 available processes
2026-04-09 13:20:43 +02:00
Pier-Jean Malandrino
fdbab2f49e feat: add Karate UI e2e tests with data-e2e selectors (#124)
- Add e2e/ui/ as peer project to e2e/api/ (own pom.xml, runner, config)
- 5 critical UI journeys: upload, delete, analysis, batch-progress, rechunk
- 4 local-only tests: sidebar, i18n, error-states, pipeline-options
- 1 full happy path workflow covering all modes
- Add data-e2e attributes on all tested Vue components (decoupled from CSS)
- Add CONVENTIONS.md with 7 golden rules for writing Karate UI tests
- Update CI with dedicated e2e-ui job (Chrome headless, --no-sandbox)
- Update docs/contributing.md with UI test instructions

Closes #124
2026-04-08 17:53:52 +02:00
Pier-Jean Malandrino
babd710d90 fix: resolve CI warnings (Node.js 20 deprecation + ESLint formatting)
Force Node.js 24 in all GitHub Actions workflows to suppress the
upcoming Node.js 20 deprecation warnings. Disable vue/html-indent and
vue/html-closing-bracket-newline ESLint rules that conflict with
Prettier formatting.

Closes #122
2026-04-08 14:54:56 +02:00
Pier-Jean Malandrino
06bfe9b2ba fix: use nginx port 3000 for CI health check and e2e tests
The backend container only exposes port 8000 internally (expose, not
ports). The health check and Karate tests must go through the nginx
proxy on port 3000, the only port published to the host.
2026-04-08 14:11:19 +02:00
Pier-Jean Malandrino
db21d73202 fix: add missing fpdf2 dependency in CI e2e job
The generate-test-data.py script imports fpdf (from fpdf2) but only
pypdfium2 was installed in the CI workflow.
2026-04-08 13:58:11 +02:00
Pier-Jean Malandrino
cfc5bb5c35 feat: add E2E API tests with Karate V2
Set up a full E2E test suite (39 scenarios) using Karate against
the real API stack. Hybrid architecture: domain-based features +
cross-domain workflows, with data-driven testing and callable helpers.

Structure:
- e2e/pom.xml: Maven + karate-core 1.5
- 3 helpers (upload, analyze+poll, cleanup)
- 3 JSON schemas (health, document, analysis)
- 12 feature files across health, documents, analyses, workflows
- Tags: @smoke (2), @regression (35), @e2e (2)
- generate-test-data.py: fpdf2-based PDF generation (no binaries)

Also adds:
- RATE_LIMIT_RPM env var to make rate limiter configurable (0=disabled)
- CI job e2e with needs: [backend, frontend]
- e2e/ in .dockerignore

Closes #119
2026-04-08 13:47:03 +02:00
Pier-Jean Malandrino
1f85d5b9cb ci: auto-close issues on merge into release/* branches
GitHub only auto-closes issues when PRs target the default branch.
This workflow scans commit messages for Closes/Fixes patterns on
push to release/** and closes the referenced issues via gh CLI.

Closes #115
2026-04-08 10:18:49 +02:00
Pier-Jean Malandrino
ac4a98e204 Fix GHA cache collision between remote and local release builds
Both matrix targets were sharing the same cache scope, causing
overwrites and cache misses. Scope caches per target.
2026-04-03 13:02:07 +02:00
Pier-Jean Malandrino
3dd7470562 Split release pipeline into remote and local image builds
Matrix strategy builds both targets in parallel. Tags follow the
pattern: v0.3.0-remote, v0.3.0-local, latest-remote, latest-local.
2026-04-03 09:24:41 +02:00
Pier-Jean Malandrino
1ff8c5108f Add release process, dynamic versioning, and changelog catch-up
Replace hardcoded version strings with build-time injection:
- Frontend: Vite __APP_VERSION__ from env or package.json
- Backend: APP_VERSION env var exposed via /health endpoint
- Docker: build arg propagated through both stages
- CI: release workflow extracts version from git tag

Document branching strategy and release process in CONTRIBUTING.md.
Catch up CHANGELOG with v0.2.0 and Unreleased sections.
Sync package.json version to 0.3.0.
2026-04-02 16:08:37 +02:00
Pier-Jean Malandrino
f77579ea2c Add missing config for doc publication 2026-03-23 10:25:55 +01:00
Pier-Jean Malandrino
1edd0668d1 Fix Ruff errror, update node and fix buttton breakline 2026-03-23 10:13:24 +01:00
Pier-Jean Malandrino
c2aeec3092 Add live documentaiton and change architecture diagram 2026-03-23 09:51:03 +01:00
Pier-Jean Malandrino
e2fe935b63 Build true detailed documentaiton 2026-03-22 08:56:00 +01:00
pjmalandrino
8871c9162c Migrate frontend in typescript 2026-03-21 15:58:43 +01:00
pjmalandrino
c3c0149532 Add docker push
Some checks failed
Release Docker Image / Build & push Docker image (push) Has been cancelled
2026-03-20 18:26:20 +01:00
pjmalandrino
c224f4933b Add CI 2026-03-20 16:32:52 +01:00
pjmalandrino
50ba1d43dd Make a nex project base, managing new Docling version 2026-03-17 08:43:00 +01:00
Loïc Pinçon
10900c346e init ci
Some checks failed
Build and Push Docker Image / build-and-push (push) Has been cancelled
2025-06-24 11:54:34 +02:00
Loïc Pinçon
da2f4779c1 init ci 2025-06-24 10:15:52 +02:00