Skip to content

Commit 762c4cb

Browse files
committed
ci: run make sparse as part of the GitHub workflow
Occasionally we receive reviews after patches were integrated, where `sparse` (https://sparse.docs.kernel.org/en/latest/ has more information on that project) identified problems such as file-local variables or functions being declared as global. By running `sparse` as part of our Continuous Integration, we can catch such things much earlier. Even better: developers who activated GitHub Actions on their forks can catch such issues before even sending their patches to the Git mailing list. This addresses gitgitgadget#345 Note: Not even Ubuntu 20.04 ships with a new enough version of `sparse` to accommodate Git's needs. The symptom looks like this: add-interactive.c:537:51: error: Using plain integer as NULL pointer To counter that, we download and install the custom-built `sparse` package from the Azure Pipeline that we specifically created to address this issue. Helped-by: Jeff King <[email protected]> Signed-off-by: Johannes Schindelin <[email protected]>
1 parent 75ae10b commit 762c4cb

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

.github/workflows/main.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,26 @@ jobs:
350350
- uses: actions/checkout@v1
351351
- run: ci/install-dependencies.sh
352352
- run: ci/run-static-analysis.sh
353+
sparse:
354+
needs: ci-config
355+
if: needs.ci-config.outputs.enabled == 'yes'
356+
env:
357+
jobname: sparse
358+
runs-on: ubuntu-20.04
359+
steps:
360+
- name: Download a current `sparse` package
361+
# Ubuntu's `sparse` version is too old for us
362+
uses: git-for-windows/get-azure-pipelines-artifact@v0
363+
with:
364+
repository: git/git
365+
definitionId: 10
366+
artifact: sparse-20.04
367+
- name: Install the current `sparse` package
368+
run: sudo dpkg -i sparse-20.04/sparse_*.deb
369+
- uses: actions/checkout@v2
370+
- name: Install other dependencies
371+
run: ci/install-dependencies.sh
372+
- run: make sparse
353373
documentation:
354374
needs: ci-config
355375
if: needs.ci-config.outputs.enabled == 'yes'

ci/install-dependencies.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,11 @@ StaticAnalysis)
6565
sudo apt-get -q -y install coccinelle libcurl4-openssl-dev libssl-dev \
6666
libexpat-dev gettext make
6767
;;
68+
sparse)
69+
sudo apt-get -q update -q
70+
sudo apt-get -q -y install libssl-dev libcurl4-openssl-dev \
71+
libexpat-dev gettext zlib1g-dev
72+
;;
6873
Documentation)
6974
sudo apt-get -q update
7075
sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make

0 commit comments

Comments
 (0)