FSKit and CI Automation for Filesystem Development

Hi everyone,

First, I'd like to say that I'm really excited about the direction FSKit is taking. Having a modern, user-space filesystem framework on macOS is a huge improvement, and I'm currently working on porting an existing cross-platform FUSE-based filesystem to use it.

One challenge I've run into is automated testing.

Our project has Linux, Windows, and macOS CI. On Linux, we can perform real mount/unmount integration tests on every commit. On Windows, we can do the same using WinFsp. However, on GitHub-hosted macOS runners, it appears that filesystem extensions still require interactive approval or registration before they can be mounted.

This makes it difficult to validate the actual mount lifecycle in ephemeral CI environments. We can still compile and unit test our filesystem logic, but we can't exercise the final "mount a filesystem and verify it behaves correctly" integration tests without a self-hosted Mac.

I'm curious whether this is the expected long-term workflow, or whether Apple has plans to make this easier for developers.

Some questions I have are:

  • Is unattended registration of an FSKit filesystem extension in CI something that's being considered?
  • Are there plans to support ephemeral CI environments such as GitHub Actions without requiring manual interaction?
  • Is there a recommended approach for automated integration testing of FSKit filesystems today that I'm overlooking?
  • More generally, what does Apple envision as the best practice for projects that want to continuously test real filesystem mounts?

I completely understand the security motivations for requiring user approval on end-user systems. My question is specifically about trusted development and CI environments where the machine is temporary and exists solely for automated testing.

Thanks for any guidance, and thanks to the FSKit team for the work that's gone into making user-space filesystems a first-class experience on macOS.

FSKit and CI Automation for Filesystem Development
 
 
Q