ci: add job performing static analysis on GitLab CI

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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Patrick Steinhardt 2023-12-28 12:02:50 +01:00 коммит произвёл Junio C Hamano
Родитель a26002b628
Коммит cd69c635a1
2 изменённых файлов: 16 добавлений и 1 удалений

Просмотреть файл

@ -51,3 +51,13 @@ test:
paths: paths:
- t/failed-test-artifacts - t/failed-test-artifacts
when: on_failure 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

Просмотреть файл

@ -21,7 +21,7 @@ linux-musl)
apache2 apache2-http2 apache2-proxy apache2-ssl apache2-webdav apr-util-dbd_sqlite3 \ apache2 apache2-http2 apache2-proxy apache2-ssl apache2-webdav apr-util-dbd_sqlite3 \
bash cvs gnupg perl-cgi perl-dbd-sqlite >/dev/null 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. # Required so that apt doesn't wait for user input on certain packages.
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
@ -31,6 +31,11 @@ linux-*)
perl-modules liberror-perl libauthen-sasl-perl libemail-valid-perl \ 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}} \ libdbd-sqlite3-perl libio-socket-ssl-perl libnet-smtp-ssl-perl ${CC_PACKAGE:-${CC:-gcc}} \
apache2 cvs cvsps gnupg libcgi-pm-perl subversion apache2 cvs cvsps gnupg libcgi-pm-perl subversion
if test "$jobname" = StaticAnalysis
then
apt install -q -y coccinelle
fi
;; ;;
pedantic) pedantic)
dnf -yq update >/dev/null && dnf -yq update >/dev/null &&