git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] ci: add job performing static analysis on GitLab CI

From
Patrick Steinhardt <ps@pks.im>
Date
Dec 28, 2023, 11:02 UTC
Message-ID
<1536a5ef07ad24dafb5d685b40099882f89e6cc5.1703761005.git.ps@pks.im>

Our GitHub Workflows definitions have a static analysis job that runs the following tasks:

  - Coccinelle to check for suggested refactorings.
  - `make hdr-check` to check for missing includes or forward
    declarations in our header files.
  - `make check-pot` to check our translations for issues.
  - `./ci/check-directional-formatting.bash` to check whether our
    sources contain any Unicode directional formatting code points.
Add an equivalent job to our GitLab CI definitions.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
---

This addition is inspired by my reftable patch series where I forgot to add a "hash-ll.h" include. This would've been catched by our GitLab CI pipeline if we already had the static-analysis job added in this patch.

These changes are part of [1], which thus also contains an example pipeline run.

[1]: https://gitlab.com/gitlab-org/git/-/merge_requests/79
 .gitlab-ci.yml                    | 10 ++++++++++
 ci/install-docker-dependencies.sh |  7 ++++++-
 2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index cd98bcb18a..793243421c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -51,3 +51,13 @@ test:
     paths:
       - t/failed-test-artifacts
     when: on_failure
+
+static-analysis:
+  image: ubuntu:22.04
+  variables:
+    jobname: StaticAnalysis
+  before_script:
+    - ./ci/install-docker-dependencies.sh
+  script:
+    - ./ci/run-static-analysis.sh
+    - ./ci/check-directional-formatting.bash
diff --git a/ci/install-docker-dependencies.sh b/ci/install-docker-dependencies.sh
index 48c43f0f90..eb2c9e1eca 100755
--- a/ci/install-docker-dependencies.sh
+++ b/ci/install-docker-dependencies.sh
@@ -21,7 +21,7 @@ linux-musl)
 		apache2 apache2-http2 apache2-proxy apache2-ssl apache2-webdav apr-util-dbd_sqlite3 \
 		bash cvs gnupg perl-cgi perl-dbd-sqlite >/dev/null
 	;;
-linux-*)
+linux-*|StaticAnalysis)
 	# Required so that apt doesn't wait for user input on certain packages.
 	export DEBIAN_FRONTEND=noninteractive
 
@@ -31,6 +31,11 @@ linux-*)
 		perl-modules liberror-perl libauthen-sasl-perl libemail-valid-perl \
 		libdbd-sqlite3-perl libio-socket-ssl-perl libnet-smtp-ssl-perl ${CC_PACKAGE:-${CC:-gcc}} \
 		apache2 cvs cvsps gnupg libcgi-pm-perl subversion
+
+	if test "$jobname" = StaticAnalysis
+	then
+		apt install -q -y coccinelle
+	fi
 	;;
 pedantic)
 	dnf -yq update >/dev/null &&
-- 
2.43.GIT
Next: Toon Claes
Message 1 of 2 in “ci: add job performing static analysis on GitLab CI”
  1. ci: add job performing static analysis on GitLab CIPatrick Steinhardt, Dec 28, 2023
  2. Toon ClaesJan 4, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.