diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d6bc2f4eb..872d76202 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -29,3 +29,13 @@ windows:
- py bin\run_tests.py
tags:
- saas-windows-medium-amd64
+
+macos:
+ image: macos-14-xcode-15
+ variables:
+ PYTEST_ADDOPTS: -k "unit_test or test_0_basic" --suppress-no-test-exit-code
+ script:
+ - python3 -m pip install -e ".[dev]" pytest-custom-exit-code
+ - python3 ./bin/run_tests.py
+ tags:
+ - saas-macos-medium-m1
diff --git a/CI.md b/CI.md
index 55e9105a2..2c082e940 100644
--- a/CI.md
+++ b/CI.md
@@ -1,10 +1,10 @@
This is a summary of the host Python versions and platforms covered by the different CI platforms:
-| | 3.8 | 3.9 | 3.10 | 3.12 |
-|---------|----------------------------------------------|-----------|-----------|--------------------------------------|
-| Linux | AppVeyor¹ / Azure Pipelines / GitHub Actions | Travis CI | Cirrus CI | CircleCI¹ / GitHub Actions / GitLab¹ |
-| macOS | AppVeyor¹ / Azure Pipelines | | Cirrus CI | CircleCI¹ / GitHub Actions |
-| Windows | AppVeyor¹ / Azure Pipelines | Travis CI | Cirrus CI | GitHub Actions / GitLab¹ |
+| | 3.8 | 3.9 | 3.10 | 3.11 | 3.12 |
+|---------|----------------------------------------------|-----------|-----------|---------|--------------------------------------|
+| Linux | AppVeyor¹ / Azure Pipelines / GitHub Actions | Travis CI | Cirrus CI | | CircleCI¹ / GitHub Actions / GitLab¹ |
+| macOS | AppVeyor¹ / Azure Pipelines | | Cirrus CI | GitLab¹ | CircleCI¹ / GitHub Actions |
+| Windows | AppVeyor¹ / Azure Pipelines | Travis CI | Cirrus CI | | GitHub Actions / GitLab¹ |
> ¹ Runs a reduced set of tests to reduce CI load
diff --git a/README.md b/README.md
index 24392fe72..4ce00594f 100644
--- a/README.md
+++ b/README.md
@@ -61,7 +61,7 @@ Usage
| Travis CI | ✅ | | ✅ | ✅ | | |
| AppVeyor | ✅ | ✅ | ✅ | | ✅ | ✅² |
| CircleCI | ✅ | ✅ | | ✅ | ✅ | |
-| Gitlab CI | ✅ | | ✅ | ✅¹ | | |
+| Gitlab CI | ✅ | ✅ | ✅ | ✅¹ | ✅ | |
| Cirrus CI | ✅ | ✅ | ✅ | ✅ | ✅ | |
¹ [Requires emulation](https://cibuildwheel.pypa.io/en/stable/faq/#emulation), distributed separately. Other services may also support Linux ARM through emulation or third-party build hosts, but these are not tested in our CI.
diff --git a/examples/gitlab-minimal.yml b/examples/gitlab-minimal.yml
index 7c16683ef..ceade6617 100644
--- a/examples/gitlab-minimal.yml
+++ b/examples/gitlab-minimal.yml
@@ -31,3 +31,15 @@ windows:
- wheelhouse/
tags:
- saas-windows-medium-amd64
+
+macos:
+ image: macos-14-xcode-15
+ before_script:
+ - python3 -m pip install cibuildwheel==2.19.1
+ script:
+ - python3 -m cibuildwheel --output-dir wheelhouse
+ artifacts:
+ paths:
+ - wheelhouse/
+ tags:
+ - saas-macos-medium-m1