docs: add documentation website#999
Conversation
c2d5a8b to
7724b62
Compare
There was a problem hiding this comment.
Pull request overview
This PR introduces a Docusaurus-based documentation website for Testably.Abstractions and adds CI automation to build and publish it to GitHub Pages (including a mechanism to pull docs from extension repositories).
Changes:
- Add a full Docusaurus site under
Docs/pages/(config, pages, styling, assets, and initial content). - Add a Nuke build target (
Pages) to download documentation from extension repos into the site before building. - Add/extend GitHub Actions workflows to build and deploy the site (including a
repository_dispatch-triggered workflow).
Reviewed changes
Copilot reviewed 41 out of 47 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| Testably.Abstractions.slnx | Includes the new pages.yml workflow in the solution tree. |
| Pipeline/Build.Pages.cs | Adds Nuke Pages target to download extension docs via GitHub API into the Docusaurus docs tree. |
| Docs/pages/tsconfig.json | TypeScript config for IDE/typechecking support for the docs site. |
| Docs/pages/static/img/social-preview.png | Social sharing preview image for the site. |
| Docs/pages/static/img/logo.png | Site/logo image used in navbar and branding. |
| Docs/pages/static/img/favicon.ico | Favicon for the documentation site. |
| Docs/pages/static/CNAME | Configures GitHub Pages custom domain (docs.testably.org). |
| Docs/pages/static/.nojekyll | Disables Jekyll processing for GitHub Pages. |
| Docs/pages/src/pages/index.tsx | Landing page and primary CTAs for the docs site. |
| Docs/pages/src/pages/index.module.css | Styles for the landing page hero/buttons. |
| Docs/pages/src/css/custom.css | Global theme colors and code highlighting styles. |
| Docs/pages/src/components/HomepageFeatures/styles.module.css | Styling for the feature cards section. |
| Docs/pages/src/components/HomepageFeatures/index.tsx | Feature cards content and layout for the landing page. |
| Docs/pages/sidebars.ts | Docusaurus sidebar configuration (autogenerated). |
| Docs/pages/package.json | Node dependencies and scripts to build/run the Docusaurus site. |
| Docs/pages/docusaurus.config.ts | Main Docusaurus site configuration (navbar, footer, prism, etc.). |
| Docs/pages/docs/testing/simulating-os.mdx | Testing docs page: simulating other OS behaviors in MockFileSystem. |
| Docs/pages/docs/testing/mock-file-system.mdx | Testing docs page: overview of MockFileSystem. |
| Docs/pages/docs/testing/intercept-and-notify.mdx | Testing docs page: intercepting operations and awaiting notifications. |
| Docs/pages/docs/testing/initialization.mdx | Testing docs page: initialization patterns for MockFileSystem. |
| Docs/pages/docs/testing/file-system-watcher.mdx | Testing docs page: FileSystemWatcher usage and OS event tables. |
| Docs/pages/docs/testing/drive-management.mdx | Testing docs page: drives/quotas usage and examples. |
| Docs/pages/docs/testing/category.json | Docusaurus category metadata for the Testing section. |
| Docs/pages/docs/migration-from-testableio.mdx | Migration guide from TestableIO to Testably.Abstractions. |
| Docs/pages/docs/intro.mdx | Intro page for the docs site (overview + quick example). |
| Docs/pages/docs/getting-started.mdx | Getting started guide (install + DI wiring + test usage). |
| Docs/pages/docs/examples/zip-file.mdx | Example page mirroring the ZipFile example folder. |
| Docs/pages/docs/examples/unix-file-mode.mdx | Example page for Unix file modes simulation. |
| Docs/pages/docs/examples/thread-aware-time-provider.mdx | Example page for thread-aware time provider usage. |
| Docs/pages/docs/examples/safe-file-handle.mdx | Example page for SafeFileHandle strategy usage. |
| Docs/pages/docs/examples/file-system-watcher.mdx | Example page for FileSystemWatcher example project. |
| Docs/pages/docs/examples/drive-management.mdx | Example page for drive management example project. |
| Docs/pages/docs/examples/configuration.mdx | Example page for configuration and DI patterns. |
| Docs/pages/docs/examples/access-control-lists.mdx | Example page for ACL/access control strategy usage. |
| Docs/pages/docs/examples/category.json | Docusaurus category metadata for the Examples section. |
| Docs/pages/docs/concepts/time-system.mdx | Concepts page: ITimeSystem surface and usage. |
| Docs/pages/docs/concepts/random-system.mdx | Concepts page: IRandomSystem surface and usage. |
| Docs/pages/docs/concepts/file-system.mdx | Concepts page: IFileSystem mapping to BCL and implementations. |
| Docs/pages/docs/concepts/category.json | Docusaurus category metadata for the Concepts section. |
| Docs/pages/docs/companion-libraries.mdx | Docs page describing companion packages (Compression, AccessControl). |
| Docs/pages/README.md | Docs site instructions (local dev, build, deployment, extensions integration). |
| Docs/pages/.gitignore | Ignores node/build artifacts and env files in docs site folder. |
| .nuke/build.schema.json | Registers the Pages target in the Nuke schema. |
| .idea/.idea.Testably.Abstractions/.idea/indexLayout.xml | Adds Docs as an attached folder in the IDE project config. |
| .github/workflows/pages.yml | Adds a repository_dispatch workflow to rebuild/deploy docs on extension updates. |
| .github/workflows/build.yml | Adds a build-pages job to build/deploy docs as part of the main CI pipeline. |
Files not reviewed (1)
- .idea/.idea.Testably.Abstractions/.idea/indexLayout.xml: Language not supported
Test Results 102 files ± 0 102 suites ±0 2h 22m 48s ⏱️ - 2m 34s Results for commit 3597a2f. ± Comparison against base commit 8ea4f8d. This pull request removes 109667 and adds 109654 tests. Note that renamed tests count towards both.This pull request removes 12552 skipped tests and adds 12552 skipped tests. Note that renamed tests count towards both.♻️ This comment has been updated with latest results. |
372061d to
3597a2f
Compare
|
|
This is addressed in release v6.3.0. |



This PR introduces a Docusaurus-based documentation website for Testably.Abstractions and adds CI automation to build and publish it to GitHub Pages (including a mechanism to pull docs from extension repositories).
Changes:
Docs/pages/(config, pages, styling, assets, and initial content).Pages) to download documentation from extension repos into the site before building.repository_dispatch-triggered workflow).