Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
d52a8f7
feat(archives): RiC-CM Phase 1 — RiC-O JSON-LD read-only export (#122)
fabiodalez-dev May 14, 2026
77ee448
fix(archives): address 8 CodeRabbit findings on RiC-CM Phase 1 PR
fabiodalez-dev May 14, 2026
54c96e8
fix(archives): address all 7 adamsreview findings on RiC-CM Phase 1 PR
fabiodalez-dev May 14, 2026
76b6172
docs(readme): document all 16 bundled plugins + IIIF 3.0 / RiC-O / At…
fabiodalez-dev May 14, 2026
42ed6ee
fix(archives): propagate DB errors from secondary RiC fetchers (CodeR…
fabiodalez-dev May 14, 2026
ac2a691
fix(archives): drop empty rdfs:label, correct hardcoded-EN language t…
fabiodalez-dev May 14, 2026
74c98d7
fix: address RiC-O review and UNIMARC alignment
fabiodalez-dev May 15, 2026
1fafdd4
fix(archives): scope DB throw to RiC path + RFC 7807 error envelope (…
fabiodalez-dev May 15, 2026
e016719
test(archives): extend RiC-O coverage — URI allow-list, gYear formatt…
fabiodalez-dev May 15, 2026
e596394
fix(archives): validate ark_identifier before n2t.net interpolation (…
fabiodalez-dev May 15, 2026
bc44de3
test(archives): filter soft-deleted authorities in RiC test seed (Cod…
fabiodalez-dev May 15, 2026
c461375
feat(archives): RiC-CM Phase 2 — agents as first-class entities (#122…
fabiodalez-dev May 16, 2026
3a89831
feat(archives): RiC-CM Phase 3 — Activities as first-class entities (…
fabiodalez-dev May 16, 2026
5a511ce
feat(archives): RiC-CM Phase 4 — Places + polymorphic relations (#122…
fabiodalez-dev May 16, 2026
105e687
chore(version): revert intermediate version bumps from Phases 2-4
fabiodalez-dev May 16, 2026
9c959b4
chore(version): bump version.json to 0.8.0 — final RiC-CM release target
fabiodalez-dev May 16, 2026
ad01c97
feat(archives): RiC-CM Phase 5 — admin UI for activities, places and …
fabiodalez-dev May 16, 2026
81f4cbc
feat(oai-pmh): RiC-CM Phase 6 — metadataPrefix=ric-o for archival_unit
fabiodalez-dev May 16, 2026
8c6b525
fix(archives): include file_size in unit_files PHPDoc shape (pre-exis…
fabiodalez-dev May 16, 2026
7a61aff
fix(archives): Phase 5 CSRF token name + place bind_param + E2E coverage
fabiodalez-dev May 16, 2026
e78a748
ci: wire archives-phase5-admin-ui.spec.js + archives-phase6-oai-ric-o…
fabiodalez-dev May 16, 2026
bc835ab
fix(tests): use TCP for mysql client in Phase 5/6 specs on CI
fabiodalez-dev May 16, 2026
bd0bb9b
fix(archives): apply 9 adamsreview Phase 8 findings (#136, rev_01KRRE…
fabiodalez-dev May 16, 2026
8ea8470
fix(archives): apply 12 walkthrough-promoted finding (threshold=40, #…
fabiodalez-dev May 16, 2026
98716d9
fix(archives): apply 7 walkthrough-promoted manual findings (#136)
fabiodalez-dev May 16, 2026
6123f89
chore(archives): final adamsreview cleanup — 7 findings + v0.7.12 (#136)
fabiodalez-dev May 16, 2026
f458b63
fix(archives): adamsreview re-review batch — 15 findings post-fix reg…
fabiodalez-dev May 17, 2026
43ffb42
fix(archives): restore get_result error logs + accept @graph shape in…
fabiodalez-dev May 17, 2026
5387737
fix(tests): replace 10-byte placeholder mp3 with real WAV fixture
fabiodalez-dev May 17, 2026
09746db
chore(gitignore): allowlist tests/fixtures/*.wav
fabiodalez-dev May 17, 2026
a0f3361
fix(updater): sort migrations by semver, not lexicographically
fabiodalez-dev May 17, 2026
b38a00f
fix(migrations): zero-pad 0.7.x patch versions for lex-correct ordering
fabiodalez-dev May 17, 2026
a8ae3b5
fix(migrations): skip RiC-CM Phase 2-6 DDL when archives plugin not y…
fabiodalez-dev May 17, 2026
3b3f6ca
ci: expand archives E2E coverage in workflow (+5 spec files)
fabiodalez-dev May 17, 2026
3511b34
fix(archives): address 7 CodeRabbit inline findings (#136)
fabiodalez-dev May 17, 2026
cf329cf
fix(archives): CR re-review — gYear historical years, ric-o gate, det…
fabiodalez-dev May 17, 2026
91670e9
fix: address 11 code review findings (1 reconciled group)
fabiodalez-dev May 19, 2026
8271484
fix: F007 + F022 — path-traversal containment and RiC-O property name
fabiodalez-dev May 19, 2026
8cfb76e
fix: walkthrough round — F009/F013/F016/F036/F038/F045
fabiodalez-dev May 19, 2026
6860c79
fix: F027 migration header cleanup + verify F037/F046 already mitigated
fabiodalez-dev May 19, 2026
c8e3a08
fix: cleanup pass — 11 below_gate findings (cosmetic + minor hardening)
fabiodalez-dev May 19, 2026
8cbf3aa
fix: CodeRabbit full-review findings — 5 real-new findings post-fix-c…
fabiodalez-dev May 19, 2026
63525c9
fix: CodeRabbit confirm-review findings — 6 minor + 1 major
fabiodalez-dev May 20, 2026
263509a
fix: adamsreview re-review — 6 critical follow-ups on prior fix cycle
fabiodalez-dev May 20, 2026
e056e98
fix: cleanup pass on remaining adamsreview findings
fabiodalez-dev May 20, 2026
9501535
ci: empty commit to re-trigger E2E suite
fabiodalez-dev May 25, 2026
66be026
test(archives): support TCP MySQL connection in CI (E2E_DB_HOST/PORT)
fabiodalez-dev May 25, 2026
0526647
ci: seed archival_units before upload-assets spec runs
fabiodalez-dev May 25, 2026
194c9f5
test(archives): align upload-asset regex with F015's 64-bit entropy
fabiodalez-dev May 25, 2026
43d36cd
ci: chmod uploads tree before pr-extended writes IIIF stub files
fabiodalez-dev May 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 68 additions & 6 deletions .github/workflows/ci-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -150,42 +150,104 @@ jobs:

# ── Test suite ───────────────────────────────────────────────────────────

- name: "[1/6] full-test.spec.js — complete application lifecycle"
- name: "[1/13] full-test.spec.js — complete application lifecycle"
run: |
npx playwright test tests/full-test.spec.js \
--config=tests/playwright.config.js \
--workers=1

- name: "[2/6] schema-integrity.spec.js — post-install table verification"
- name: "[2/13] schema-integrity.spec.js — post-install table verification"
run: |
npx playwright test tests/schema-integrity.spec.js \
--config=tests/playwright.config.js \
--workers=1

- name: "[3/6] plugin-integrity.spec.js — plugin registration regression"
- name: "[3/13] plugin-integrity.spec.js — plugin registration regression"
run: |
npx playwright test tests/plugin-integrity.spec.js \
--config=tests/playwright.config.js \
--workers=1

- name: "[4/6] mag-validation.spec.js — OAI-PMH MAG 2.0.1 metadata"
- name: "[4/13] mag-validation.spec.js — OAI-PMH MAG 2.0.1 metadata"
run: |
npx playwright test tests/mag-validation.spec.js \
--config=tests/playwright.config.js \
--workers=1

- name: "[5/6] archives-search.spec.js — ricerca archivi admin + pubblica"
- name: "[5/13] archives-search.spec.js — ricerca archivi admin + pubblica"
run: |
npx playwright test tests/archives-search.spec.js \
--config=tests/playwright.config.js \
--workers=1

- name: "[6/6] ncip-server.spec.js — NCIP 2.0 endpoints v0.7.4"
- name: "[6/13] ncip-server.spec.js — NCIP 2.0 endpoints v0.7.4"
run: |
npx playwright test tests/ncip-server.spec.js \
--config=tests/playwright.config.js \
--workers=1

- name: "[7/13] archives-phase5-admin-ui.spec.js — RiC-CM Phase 5 admin UI v0.7.12"
run: |
npx playwright test tests/archives-phase5-admin-ui.spec.js \
--config=tests/playwright.config.js \
--workers=1

- name: "[8/13] archives-phase6-oai-ric-o.spec.js — OAI-PMH metadataPrefix=ric-o v0.7.12"
run: |
npx playwright test tests/archives-phase6-oai-ric-o.spec.js \
--config=tests/playwright.config.js \
--workers=1

- name: "[9/13] archives-ric-jsonld.spec.js — RiC-O JSON-LD endpoints (Phase 1-4)"
run: |
npx playwright test tests/archives-ric-jsonld.spec.js \
--config=tests/playwright.config.js \
--workers=1

- name: "[10/13] archives-crud.spec.js — archival_units CRUD (#103)"
run: |
npx playwright test tests/archives-crud.spec.js \
--config=tests/playwright.config.js \
--workers=1

- name: "[11/13] archives-authorities.spec.js — authority_records CRUD"
run: |
npx playwright test tests/archives-authorities.spec.js \
--config=tests/playwright.config.js \
--workers=1

- name: "[12/13] archives-upload-assets.spec.js — cover/document upload pipeline"
# The upload-assets spec picks 3 archival_units from the
# `E2E_SEED_*` batch — it doesn't seed them itself. The seed
# lives in archives-seed-50.spec.js (50 rows, all 4 levels,
# full option matrix). On a fresh CI install no E2E_SEED_* row
# exists yet, so the upload spec's beforeAll fails with
# "no seeded row available for PDF test". Seed-then-upload
# in the same step keeps the dependency local — no test-order
# coupling with other steps, no separate seed step to renumber.
run: |
npx playwright test tests/archives-seed-50.spec.js \
--config=tests/playwright.config.js \
--workers=1
npx playwright test tests/archives-upload-assets.spec.js \
--config=tests/playwright.config.js \
--workers=1

- name: "[13/13] archives-pr-extended.spec.js — extended CRUD + CSRF regression"
# The pr-extended spec creates stub files directly via
# fs.writeFileSync under public/uploads/archives/documents/ to
# drive the IIIF rendering[] assertions. The previous step
# ([12/13] upload-assets) ran real uploads through Apache,
# which created subdirectories owned by www-data — the runner
# process can no longer write into them, so the test EACCES'es
# before the first assertion. Re-chmod the uploads tree right
# before this step (idempotent, no-op when already 777).
run: |
sudo chmod -R 777 "${GITHUB_WORKSPACE}/public/uploads" || true
npx playwright test tests/archives-pr-extended.spec.js \
--config=tests/playwright.config.js \
--workers=1

# ── Artifacts on failure ─────────────────────────────────────────────────
- name: Upload Playwright report
uses: actions/upload-artifact@v4
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -406,6 +406,7 @@ tests/fixtures/*
!tests/fixtures/*.jpg
!tests/fixtures/*.pdf
!tests/fixtures/*.mp3
!tests/fixtures/*.wav
!tests/fixtures/*.csv
!tests/fixtures/*.tsv
!tests/helpers/
Expand Down
Loading
Loading