elsa-core/.github/workflows/adr-toc.yml
Sipke Schoorstra f6d2d38536
test(user-tasks): add a persistence conformance suite with fault injection (#7986)
Runs one suite unchanged against every implementation of IUserTaskRepository,
IUserTaskGuestSessionIssuer, and IUserTaskInvitationOutbox, plus a fault-injection
suite driving the real DefaultUserTaskManager and DefaultUserTaskInvitationService
against a real store. Gated providers report as skipped with a reason rather than
passing vacuously; ConformanceCoverageTests fails when a provider that must run is
unreachable or its variable is set but empty.

The suite found three defects, fixed here:

- VNextUserTaskRepository supplied no index values for WorkflowDefinitionId,
  WorkflowInstanceId, ActivityInstanceId, CreatedAt, or CompletedAt, all declared by
  its own schema provider, so every write through the VNext provider threw.
- The same provider resolved invitation token hashes by scanning on Status alone,
  which matched no declared index, so anonymous invitation verification always threw.
- EFCoreUserTaskInvitationOutbox persisted the delivery recipient but never read it
  back, so durably queued invitations reached the dispatcher with no address.

Also switches new ADRs to date-prefixed identifiers and generates doc/adr/toc.md via
scripts/adr/generate-toc.sh, with a --check mode and pull-request workflow so the
index is never hand-edited again.
2026-08-25 04:36:18 +02:00

28 lines
855 B
YAML

# Keeps doc/adr/toc.md generated rather than hand-edited. The index drifted from the records it indexes
# because every ADR merge conflict asked a human to retype it; this fails the pull request instead.
name: ADR index
on:
pull_request:
paths:
- 'doc/adr/**'
- 'scripts/adr/**'
- '.github/workflows/adr-toc.yml'
permissions:
contents: read
jobs:
check-toc:
name: doc/adr/toc.md is up to date
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Checkout
# Pinned to an immutable commit so retargeting the v4 tag upstream cannot change what runs
# here, matching how update-wiki.yml already pins this action.
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Check the generated index
run: ./scripts/adr/generate-toc.sh --check