diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d147ca793a848688fe7f16b7b62a20c0dd1f3f27..3ef9fe51d26c65e8cb55a91009471f12b6cb08ce 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -31,6 +31,12 @@ frama-c:
   stage: build
   script:
    - nix/frama-ci.sh build -A frama-c.main
+  artifacts:
+    when: on_failure
+    paths:
+      - commits.nix
+      - results.log
+    expire_in: 1 day
   tags:
    - nix
 
diff --git a/nix/frama-ci.sh b/nix/frama-ci.sh
index dbbe1bb07e4976298cd85cb0a96675ab78d5ac56..d3a76ed345d21339c2bdb9a37abca956c22cab51 100755
--- a/nix/frama-ci.sh
+++ b/nix/frama-ci.sh
@@ -9,4 +9,11 @@ export FRAMA_CI=$(nix-instantiate --eval -E "((import <nixos-20.03> {}).callPack
 FRAMA_CI=${FRAMA_CI#\"}
 FRAMA_CI=${FRAMA_CI%\"}
 
-$FRAMA_CI/compile.sh $@
+PIPE=$(mktemp)
+rm $PIPE
+mkfifo $PIPE
+tee results.log < $PIPE &
+$FRAMA_CI/compile.sh $@ > $PIPE 2>&1
+STATUS=$?
+rm $PIPE
+exit $STATUS