diff --git a/.gitlab/build.yml b/.gitlab/build.yml
index 28217166af3ac39c3d199a7f5f8ffb981136de50..5e0fd37742189ae74db6f46926958ab0394e0e68 100644
--- a/.gitlab/build.yml
+++ b/.gitlab/build.yml
@@ -59,3 +59,19 @@ build_starpu_simgrid:
     SIMU: simu
     BUILD_OPTIONS: "-DCHAMELEON_SIMULATION=ON -DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=OFF"
     VERSION: starpu_simgrid
+
+build_starpu_macosx:
+  stage: build
+  tags: ['macosx']
+  except:
+    - schedules
+  artifacts:
+    untracked: true
+    name: build_starpu_macosx
+    expire_in: 48 hours
+  variables:
+    VERSION: starpu
+  script:
+    - tools/build_macosx.sh
+
+
diff --git a/.gitlab/common.yml b/.gitlab/common.yml
index 72fcedcbeb8adb41166fdb9fc2df754253b20fca..8d322c93c41f82e9708fbbb5c44541fc457343b9 100644
--- a/.gitlab/common.yml
+++ b/.gitlab/common.yml
@@ -19,7 +19,7 @@
 .build_script_template:
   image: registry.gitlab.inria.fr/solverstack/docker/distrib
   stage: build
-  tags: ["large"]
+  tags: ["linux"]
   script:
     - export LOGNAME=chameleon_${VERSION}.log
     - echo $LOGNAME
@@ -43,7 +43,7 @@
 .test_script_template:
   image: registry.gitlab.inria.fr/solverstack/docker/distrib
   stage: test
-  tags: ["large"]
+  tags: ["linux"]
   script:
     - export LOGNAME=chameleon_${VERSION}_${CATEGORY}_${PRECISION}
     - echo $LOGNAME
diff --git a/.gitlab/coverity.yml b/.gitlab/coverity.yml
index 3c1413f1013f14880dd12a3fda47f23b2b94584c..b5c666c67ea5c412c5284be8bb99e96ed51a45c5 100644
--- a/.gitlab/coverity.yml
+++ b/.gitlab/coverity.yml
@@ -2,7 +2,7 @@
 coverity:
   image: registry.gitlab.inria.fr/solverstack/docker/distrib
   stage: analyse
-  tags: ["large"]
+  tags: ["linux"]
   dependencies: []
   artifacts:
     name: chameleon_coverity
diff --git a/.gitlab/sonarqube.yml b/.gitlab/sonarqube.yml
index d6dc160f2e3a2c58294e61c66b0977ce61e14e8b..564e62d6f6e659c628b379875c5a046f27dd6e00 100644
--- a/.gitlab/sonarqube.yml
+++ b/.gitlab/sonarqube.yml
@@ -1,7 +1,7 @@
 sonarqube:
   image: registry.gitlab.inria.fr/solverstack/docker/distrib
   stage: analyse
-  tags: ["large"]
+  tags: ["linux"]
   artifacts:
     name: chameleon_analysis
     expire_in: 1 week
diff --git a/.gitlab/test_starpu.yml b/.gitlab/test_starpu.yml
index 1aa626ccd4c48d431aaec02e20f42043555945e8..ab04956a9c3e4fc01de99846f2fb2b1758e37164 100644
--- a/.gitlab/test_starpu.yml
+++ b/.gitlab/test_starpu.yml
@@ -88,3 +88,23 @@ test_starpu_mpi_z:
     CATEGORY: mpi
     PRECISION: z
     TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
+
+test_starpu_shm_s_macosx:
+  stage: test
+  tags: ['macosx']
+  except:
+    - schedules
+  needs: [build_starpu_macosx]
+  dependencies:
+    - build_starpu_macosx
+  artifacts:
+    untracked: true
+    name: build_starpu_macosx
+    expire_in: 48 hours
+  variables:
+    VERSION: starpu
+  script:
+    - cd build-starpu && ctest -V -R test_shm_s
+                               -D ExperimentalTest
+                               -D ExperimentalCoverage
+                               -D ExperimentalSubmit
diff --git a/tools/build_macosx.sh b/tools/build_macosx.sh
new file mode 100755
index 0000000000000000000000000000000000000000..80cd0d87979a437bb1b861b39a2f2ca56ee87768
--- /dev/null
+++ b/tools/build_macosx.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/Cellar/openblas/0.3.13/lib/pkgconfig/:${PKG_CONFIG_PATH}
+
+cd build-starpu
+cmake .. -DCMAKE_INSTALL_PREFIX=$PWD/../install -DCHAMELEON_PREC_D=OFF -DCHAMELEON_PREC_C=OFF -DCHAMELEON_PREC_Z=OFF -DBLA_PREFER_PKGCONFIG=ON -DBUILD_SHARED_LIBS=ON
+make -j5
+make install