Skip to content

Commit 8b631ac

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. Signed-off-by: Johannes Schindelin <[email protected]>
1 parent 75ae10b commit 8b631ac

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

.github/workflows/main.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,27 @@ 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+
- name: Install other dependencies
370+
run: |
371+
sudo apt-get install -q -y libssl-dev libcurl4-openssl-dev libexpat-dev gettext zlib1g-dev
372+
- uses: actions/checkout@v2
373+
- run: make sparse
353374
documentation:
354375
needs: ci-config
355376
if: needs.ci-config.outputs.enabled == 'yes'

0 commit comments

Comments
 (0)