diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..147aa758340da1289adafb89b7dc3f1f0f133ff5
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,10 @@
+Tests:
+  variables:
+    CURRENT: $CI_COMMIT_REF_NAME
+    DEFAULT: "master"
+    OCAML: "4_05"
+    FRAMA_CI_OPT: "--override frama-clang:$CI_COMMIT_REF_NAME,$CI_COMMIT_SHA"
+  script:
+   - nix/frama-ci.sh build -A frama-clang.tests
+  tags:
+   - nix
diff --git a/nix/default.nix b/nix/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..28a102ded88260ef6b0c7a0d238f1d3517891996
--- /dev/null
+++ b/nix/default.nix
@@ -0,0 +1,10 @@
+# paramaterised derivation with dependencies injected (callPackage style)
+ { pkgs, stdenv, src ? ../., opam2nix,
+   ocaml_version ? "ocamlPackages_latest.ocaml", plugins ? { } }:
+
+plugins.helpers.simple_plugin
+   { inherit pkgs stdenv src opam2nix ocaml_version plugins;
+     name = "frama-clang";
+     deps = [ pkgs.clang_4 pkgs.llvm_4 ];
+     opamPackages = [ "camlp4" ];
+   }
diff --git a/nix/frama-ci.sh b/nix/frama-ci.sh
old mode 100644
new mode 100755