diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml
new file mode 100644
index 0000000..1eaef2d
--- /dev/null
+++ b/.github/workflows/unit-tests.yml
@@ -0,0 +1,24 @@
+name: Unit tests
+
+on:
+ push:
+ branches: [ main ]
+ pull_request:
+
+concurrency:
+ group: ci-${{ github.event.pull_request.number || github.ref }}
+ cancel-in-progress: true # Cancel older runs for the same PR/branch
+
+jobs:
+ build-and-test:
+ runs-on: macos-15
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Build
+ run: swift build
+
+ - name: Test
+ run: swift test --no-parallel
diff --git a/README.md b/README.md
index 9b8e69f..452c13e 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,21 @@