The Swift Docc has to run in a Linux container to be able to build the documentation, as it needs access to the inotify.h header files.
1.9 KiB
TaskCLI
The build tool for the Swift Inotify project.
Overview
TaskCLI is a small command-line executable (exposed as task in Package.swift) that automates project-level workflows. Its primary purpose is running integration tests and generating documentation inside Linux Docker containers, so you can validate inotify-dependent code on the correct platform even when developing on macOS.
Running the Tests
swift run task test
This launches a swift:latest Docker container with the repository mounted at /code, then executes two test passes:
- All tests except
InotifyLimitTests— the regular integration suite. - Only
InotifyLimitTests(with--skip-build) — tests that manipulate system-level inotify limits and must run in isolation.
The container is started with --security-opt systempaths=unconfined so that the limit tests can write to /proc/sys/fs/inotify/*.
Generating Documentation
swift run task generate-documentation
This copies the project to a temporary directory, injects the swift-docc-plugin dependency via swift package add-dependency (if absent), and runs documentation generation inside a swift:latest Docker container. The resulting static sites are written to ./public/inotify/ and ./public/taskcli/, ready for deployment to GitHub Pages.
The working tree is never modified — all changes happen in the temporary copy, which is cleaned up automatically.
Verbosity
Pass one or more -v flags to increase log output:
| Flag | Level |
|---|---|
| (none) | notice |
-v |
info |
-vv |
debug |
-vvv |
trace |
Prerequisites
Docker must be installed and running on the host machine. The container uses the linux/arm64 platform by default.
Topics
Commands
CommandTestCommandGenerateDocumentationCommand
Configuration
GlobalOptions
Errors
GenerateDocumentationError