docs: Add Benchmarks landing page and update CI triggers#931
Conversation
Adds a new "Benchmarks" page slotted between "Advanced" (sidebar position 16) and "Write your own extension" (renumbered 17 -> 18). The page hosts one tab per HappyCaseBenchmark, each showing a short description, the latest aweXpect vs FluentAssertions snapshot rendered by the BenchmarkResult component (lives in Testably.Server, imported via @site/src/components/BenchmarkResult), the two source snippets, and a link to the benchmark file. The component, the snapshot data, and the build-time fetch from this repo's benchmarks branch are introduced in the matching Testably.Server change. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Two fixes folded together: 1. The path filter was matched against the pre-flatten layout (Docs/pages/docs/expectations/**, Docs/pages/docs/extensions/**) which was removed in PR #930. After PR #930 the docs sit directly under Docs/pages/, so the workflow has been silently failing to fire on doc updates. Replaced with a single Docs/pages/** filter that also matches the benchmark data files on the long-lived benchmarks branch. 2. Added the benchmarks branch to the trigger so updates to the limited-data.js file used by Testably.Server's BenchmarkResult component also kick off a site rebuild. Note: pushes to the benchmarks branch performed by the Build workflow's GITHUB_TOKEN don't actually fire push events (a documented GitHub limitation to avoid recursive workflows). To make the auto-rebuild work end-to-end, the benchmarks job in build.yml will need to either switch to a PAT for the Contents API PUT or fire a repository_dispatch directly. That is left as a follow-up. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replaces the push + path filter with a workflow_run trigger gated on the "Build" workflow finishing successfully on main. The benchmarks job is part of every main build and updates the long-lived benchmarks branch, so a single signal per main build covers both doc updates and benchmark refreshes without trying to express both via path filters (which couldn't anyway -- the benchmarks-branch push happens via GITHUB_TOKEN, which doesn't fire push events). The dispatched payload now uses workflow_run.head_sha so the receiver gets the sha of the commit that was actually built, not the sha of main at the time the notify workflow itself runs (those can differ briefly). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR expands the documentation set with a new benchmarks landing page and an extension-authoring guide, and changes the docs-site notification workflow so site rebuilds are triggered after a successful main-branch build. In the broader codebase, these changes are aimed at making benchmark data visible in the published docs and improving guidance for consumers extending aweXpect.
Changes:
- Add a new
Benchmarksdocs page with methodology, benchmark tabs, and source links. - Add a new
Write your own extensionguide covering custom expectations, constraints, and customization APIs. - Switch docs-site notifications from path-based
pushtriggers toworkflow_runon theBuildworkflow.
Reviewed changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
Docs/pages/18-write-extension.md |
Adds a new extension authoring guide with code samples for custom expectations and customization. |
Docs/pages/17-benchmarks.mdx |
Adds a benchmark landing page with tabs, methodology, and links to benchmark implementations. |
.github/workflows/notify-docs-site.yml |
Changes docs-site rebuild triggering from direct pushes to completed Build workflow runs. |
Test Results 23 files - 27 23 suites - 27 9m 15s ⏱️ + 1m 37s Results for commit 21156da. ± Comparison against base commit 4aaf522. This pull request removes 3112 and adds 3083 tests. Note that renamed tests count towards both.♻️ This comment has been updated with latest results. |
Per code review: the previous condition allowed workflow_dispatch from any branch, so a feature branch could trigger a production docs-site rebuild with an unmerged SHA. Re-add the main-only guard for the manual case while keeping the workflow_run-driven automatic case unchanged. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sweep the canonical org rename and the docs hand-off into one update: - github.com/aweXpect/aweXpect -> github.com/Testably/aweXpect across README badges, RepositoryUrl in Directory.Build.props (which flows into the API surface .txt fixtures), build pipeline URLs, Octokit owner args, and the Stryker dashboard project name. - PackageProjectUrl and the README/landing-page doc links move from https://aweXpect.com to https://docs.testably.org/awexpect, matching the path layout after the docs flatten in PR #930. Sibling-repo links (aweXpect.Json/.Web/.Reflection/.Testably/.Mockolate) are intentionally left alone -- those repos need separate confirmation before the rename. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…pdate CI triggers (#931) by Valentin Breuß
…pdate CI triggers (#931) by Valentin Breuß
🚀 Benchmark ResultsDetails
|
|
This is addressed in release v2.32.0. |
This pull request introduces a new benchmarks documentation page and updates the workflow that notifies the documentation site of changes. The most significant changes are the addition of a comprehensive benchmarks comparison between aweXpect and FluentAssertions, and improvements to the automation for triggering documentation site rebuilds.
Documentation: Benchmarks
17-benchmarks.mdxto the documentation, providing detailed benchmarks comparing aweXpect's performance to FluentAssertions across multiple assertion scenarios. The page uses interactive tabs, code samples, and links to source files to help users understand performance characteristics.CI/CD Workflow Improvements