From 04ff6dd17db95723a9c0f4bbfeee4566803f6c3e Mon Sep 17 00:00:00 2001
From: Allan Blanchard <allan.blanchard@cea.fr>
Date: Mon, 17 Jul 2023 16:03:01 +0200
Subject: [PATCH] [nix/ci] fix naming and out for coverage

---
 .gitlab-ci.yml   |  2 +-
 nix/mk_tests.nix | 17 +++++++++++------
 nix/ts-api.nix   |  8 ++++----
 3 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d455de5f11b..7854dfc83d3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -133,7 +133,7 @@ ivette:
   artifacts:
     name: coverage-$CI_JOB_NAME
     paths:
-      - coverage/coverage.tar.xz
+      - coverage/*.tar.xz
     expire_in: 24h
 
 .build_template: &coverage
diff --git a/nix/mk_tests.nix b/nix/mk_tests.nix
index 94b36bd5ab0..36623cfc433 100644
--- a/nix/mk_tests.nix
+++ b/nix/mk_tests.nix
@@ -89,8 +89,8 @@ stdenvNoCC.mkDerivation {
   postBuild =
     if cover
     then ''
-      bisect-ppx-report cobertura --coverage-path=coverage coverage.xml
-      tar cfJ coverage.tar.xz coverage.xml
+      bisect-ppx-report cobertura --coverage-path=coverage coverage-$pname.xml
+      tar cfJ coverage.tar.xz coverage-$pname.xml
     ''
     else "" ;
 
@@ -102,8 +102,13 @@ stdenvNoCC.mkDerivation {
   '';
 
   # No installation required
-  installPhase = ''
-    mkdir $out
-    cp -r coverage.tar.xz $out
-  '';
+  installPhase =
+    if cover
+    then ''
+      mkdir -p $out
+      cp -r coverage.tar.xz $out/$pname.tar.xz
+    ''
+    else ''
+      touch $out
+    '';
 }
diff --git a/nix/ts-api.nix b/nix/ts-api.nix
index 7662fdbcb2a..5d181a1a778 100644
--- a/nix/ts-api.nix
+++ b/nix/ts-api.nix
@@ -31,13 +31,13 @@ stdenv.mkDerivation rec {
     mkdir coverage
     export BISECT_FILE="$(pwd)/coverage/bisect-"
     make -C ivette check-api
-    bisect-ppx-report cobertura --coverage-path=coverage coverage.xml
-    tar cfJ coverage.tar.xz coverage.xml
+    bisect-ppx-report cobertura --coverage-path=coverage coverage-$pname.xml
+    tar cfJ coverage.tar.xz coverage-$pname.xml
   '';
 
   # No installation required
   installPhase = ''
-    mkdir $out
-    cp -r coverage.tar.xz $out
+    mkdir -p $out
+    cp -r coverage.tar.xz $out/$pname.tar.xz
   '';
 }
-- 
GitLab