From 3d34ebd54992b09a017231f95c5604a521a1f186 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Mon, 21 Feb 2022 15:50:53 +0100 Subject: [PATCH] [ci] Partially enable lint --- .gitlab-ci.yml | 16 ++++++++-------- nix/lint.nix | 41 +++++++++++++++++++++++++++++++++++++++++ nix/pkgs.nix | 1 + 3 files changed, 50 insertions(+), 8 deletions(-) create mode 100644 nix/lint.nix diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 400fac41e1e..2a1d7c13655 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -49,6 +49,14 @@ frama-c: tags: - nix +lint: + stage: build + script: + - nix-build nix/pkgs.nix -A ocamlPackages.lint + coverage: '/lint coverage: \d+\.\d+/' + tags: + - nix + ################################################################################ ### TESTS @@ -72,14 +80,6 @@ plugins-tests: ################################################################################ ### PUBLIC -# lint: -# stage: build -# script: -# - nix/frama-ci.sh build -A frama-c.lint -# coverage: '/lint coverage: \d+\.\d+/' -# tags: -# - nix - # wp-qualif: # stage: tests # script: diff --git a/nix/lint.nix b/nix/lint.nix new file mode 100644 index 00000000000..6f79ef2ff81 --- /dev/null +++ b/nix/lint.nix @@ -0,0 +1,41 @@ +# TODO: +# - enable lint E-ACSL C files +# - enable check-headers + +{ lib +, stdenv +, bc +# , clang_10 +, frama-c +# , headache +, ocp-indent +} : + +stdenv.mkDerivation rec { + pname = "lint"; + version = frama-c.version; + slang = frama-c.slang; + + src = frama-c.src; + + nativeBuildInputs = frama-c.nativeBuildInputs; + + buildInputs = frama-c.buildInputs ++ [ + bc + # headache + ocp-indent + # clang_10 + ]; + + preConfigure = frama-c.preConfigure; + + buildPhase = '' + make lint + make stats-lint + # STRICT_HEADERS=yes make check-headers + ''; + + installPhase = '' + touch $out + ''; +} diff --git a/nix/pkgs.nix b/nix/pkgs.nix index b14ed53562f..a36dae2d38b 100644 --- a/nix/pkgs.nix +++ b/nix/pkgs.nix @@ -9,6 +9,7 @@ let why3 = oself.callPackage ./why3.nix {}; # Builds frama-c = oself.callPackage ./frama-c.nix {}; + lint = oself.callPackage ./lint.nix {}; # Tests main-tests = oself.callPackage ./main-tests.nix {}; plugins-tests = oself.callPackage ./plugins-tests.nix {}; -- GitLab