diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8ee4b78351d06fcd9074a7bdb012bf3f1a630c71..4c8e48221f857e9a3a254dc457e0eb78f087b701 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,12 +1,25 @@
-before_script:
-  - apt-get update -qq && apt-get install -y wget bzip2 make gcc gcc-multilib time bc git
-  - wget -nv https://common-lisp.net/project/cmucl/downloads/release/21c/cmucl-21c-x86-linux.tar.bz2
-  - wget -nv https://common-lisp.net/project/cmucl/downloads/release/21c/cmucl-21c-x86-linux.extra.tar.bz2
-  - mkdir snapshot
-  - (cd snapshot; tar xjf ../cmucl-21c-x86-linux.tar.bz2; tar xjf ../cmucl-21c-x86-linux.extra.tar.bz2)
+linux-runner:
+  tags:
+    - linux
+  before_script:
+    - apt-get update -qq && apt-get install -y wget bzip2 make gcc gcc-multilib time bc git
+    - wget -nv https://common-lisp.net/project/cmucl/downloads/release/21c/cmucl-21c-x86-linux.tar.bz2
+    - wget -nv https://common-lisp.net/project/cmucl/downloads/release/21c/cmucl-21c-x86-linux.extra.tar.bz2
+    - mkdir snapshot
+    - (cd snapshot; tar xjf ../cmucl-21c-x86-linux.tar.bz2; tar xjf ../cmucl-21c-x86-linux.extra.tar.bz2)
+  script:
+    - bin/build.sh -C "" -o ./snapshot/bin/lisp
+    - bin/make-dist.sh -I dist linux-4
+    - bin/run-tests.sh -l dist/bin/lisp 2>&1 | tee test.log
 
-test:
+osx-runner:
+  tags:
+    - osx
+  before_script:
+    - curl -o cmucl-21c-x86-darwin.tar.bz2 https://common-lisp.net/project/cmucl/downloads/release/21c/cmucl-21c-x86-darwin.tar.bz2
+    - mkdir snapshot
+    - (cd snapshot; tar xjf ../cmucl-21c-x86-darwin.tar.bz2)
   script:
     - bin/build.sh -C "" -o ./snapshot/bin/lisp
-    - bin/make-dist.sh -I dist-linux linux-4
-    - bin/run-tests.sh -l dist-linux/bin/lisp 2>&1 | tee test.log
+    - bin/make-dist.sh -I dist darwin-4
+    - bin/run-tests.sh -l dist/bin/lisp 2>&1 | tee test.log