Skip to content

docs: add documentation website#999

Merged
vbreuss merged 6 commits into
mainfrom
topic/add-docu-website
May 2, 2026
Merged

docs: add documentation website#999
vbreuss merged 6 commits into
mainfrom
topic/add-docu-website

Conversation

@vbreuss
Copy link
Copy Markdown
Member

@vbreuss vbreuss commented May 2, 2026

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).
  • Simplify README.md and include a link into documentation

@vbreuss vbreuss self-assigned this May 2, 2026
Copilot AI review requested due to automatic review settings May 2, 2026 10:50
@vbreuss vbreuss added the documentation Improvements or additions to documentation label May 2, 2026
@vbreuss vbreuss force-pushed the topic/add-docu-website branch from c2d5a8b to 7724b62 Compare May 2, 2026 10:52
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Comment thread Docs/pages/src/components/HomepageFeatures/index.tsx Outdated
Comment thread Pipeline/Build.Pages.cs
Comment thread Pipeline/Build.Pages.cs
Comment thread Pipeline/Build.Pages.cs
Comment thread Pipeline/Build.Pages.cs
Comment thread Docs/pages/docs/intro.mdx
Comment thread Docs/pages/src/pages/index.tsx
Comment thread Docs/pages/docusaurus.config.ts
Comment thread .github/workflows/build.yml Fixed
Comment thread .github/workflows/pages.yml Fixed
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 2, 2026

Test Results

    102 files  ± 0      102 suites  ±0   2h 22m 48s ⏱️ - 2m 34s
112 482 tests  - 12   99 872 ✅  - 12  12 610 💤 ±0  0 ❌ ±0 
268 458 runs  ± 0  231 770 ✅ ± 0  36 688 💤 ±0  0 ❌ ±0 

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.
  )
)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(0065ed1b-e112-4534-bdf0-d95348b059c6)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(0df1cf5d-87fd-4d7a-a98a-466e8be51d9b)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(0f23e542-3070-4cc6-a049-b32544f9fe98)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(1ab63685-2564-4547-a308-ae4d34c5c7ae)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(1d223855-fcff-421a-beb9-cb49c19d4218)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(2a14a5a8-bfba-43a0-b51f-9c7a98db184c)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(359535a0-23f7-48eb-b618-63428247e3c0)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(3b90b109-8767-4772-875d-26f81aba8231)
…
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(0f32a746-0356-4090-b814-8ae0504e9d74)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(1cf108d2-0f40-4c5c-8d41-86cfc8196add)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(1e22a4e1-98a9-40fb-bcd8-0f9db3b34976)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(20230425-b6fa-4e9a-b8b3-0090df9439d0)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(2342371c-9651-4b6f-84a0-eb983e08e268)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(330cdf87-c3d1-4f92-a3ee-3ce66f80fb02)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(33ab9d52-9f3c-45a8-9089-a96d36c32cf2)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(4202c205-ec21-4dc3-8015-f5694598a39e)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(42b303f9-8be3-4b27-8858-9f01c8369bee)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(462b22c1-e33e-4c73-9592-35722057f004)
…
This pull request removes 12552 skipped tests and adds 12552 skipped tests. Note that renamed tests count towards both.
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(0065ed1b-e112-4534-bdf0-d95348b059c6)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(0df1cf5d-87fd-4d7a-a98a-466e8be51d9b)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(0f23e542-3070-4cc6-a049-b32544f9fe98)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(1ab63685-2564-4547-a308-ae4d34c5c7ae)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(1d223855-fcff-421a-beb9-cb49c19d4218)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(2a14a5a8-bfba-43a0-b51f-9c7a98db184c)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(359535a0-23f7-48eb-b618-63428247e3c0)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(3b90b109-8767-4772-875d-26f81aba8231)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(3f321b76-989d-4931-9688-83e2d025fa1a)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(406cbdb0-1ad1-47c9-8dde-6fcd57cefbf7)
…
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(0f32a746-0356-4090-b814-8ae0504e9d74)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(1cf108d2-0f40-4c5c-8d41-86cfc8196add)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(1e22a4e1-98a9-40fb-bcd8-0f9db3b34976)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(20230425-b6fa-4e9a-b8b3-0090df9439d0)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(2342371c-9651-4b6f-84a0-eb983e08e268)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(330cdf87-c3d1-4f92-a3ee-3ce66f80fb02)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(33ab9d52-9f3c-45a8-9089-a96d36c32cf2)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(4202c205-ec21-4dc3-8015-f5694598a39e)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(42b303f9-8be3-4b27-8858-9f01c8369bee)
Testably.Abstractions.AccessControl.Tests.DirectoryInfoAclExtensionsTests ‑ SetAccessControl_ShouldNotUpdateTimes(462b22c1-e33e-4c73-9592-35722057f004)
…

♻️ This comment has been updated with latest results.

@vbreuss vbreuss force-pushed the topic/add-docu-website branch from 372061d to 3597a2f Compare May 2, 2026 14:25
@vbreuss vbreuss enabled auto-merge (squash) May 2, 2026 14:30
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented May 2, 2026

@vbreuss vbreuss merged commit f2e5ed3 into main May 2, 2026
21 checks passed
@vbreuss vbreuss deleted the topic/add-docu-website branch May 2, 2026 15:05
@github-actions
Copy link
Copy Markdown

This is addressed in release v6.3.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation state: released

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants