summaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorJohannes Schindelin <johannes.schindelin@gmx.de>2021-07-14 11:50:33 (GMT)
committerJunio C Hamano <gitster@pobox.com>2021-07-14 17:14:21 (GMT)
commite61059660ca00ba69d1721b7d48653c52848bece (patch)
tree3158cb21fbb01f147425f16a006ae628d36f78db /.github
parent75ae10bc75336db031ee58d13c5037b929235912 (diff)
downloadgit-e61059660ca00ba69d1721b7d48653c52848bece.zip
git-e61059660ca00ba69d1721b7d48653c52848bece.tar.gz
git-e61059660ca00ba69d1721b7d48653c52848bece.tar.bz2
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 https://github.com/gitgitgadget/git/issues/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 <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/main.yml21
1 files changed, 21 insertions, 0 deletions
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 73856ba..1b5c039 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -350,6 +350,27 @@ jobs:
- uses: actions/checkout@v1
- run: ci/install-dependencies.sh
- run: ci/run-static-analysis.sh
+ sparse:
+ needs: ci-config
+ if: needs.ci-config.outputs.enabled == 'yes'
+ env:
+ jobname: sparse
+ runs-on: ubuntu-20.04
+ steps:
+ - name: Download a current `sparse` package
+ # Ubuntu's `sparse` version is too old for us
+ uses: git-for-windows/get-azure-pipelines-artifact@v0
+ with:
+ repository: git/git
+ definitionId: 10
+ artifact: sparse-20.04
+ - name: Install the current `sparse` package
+ run: sudo dpkg -i sparse-20.04/sparse_*.deb
+ - name: Install other dependencies
+ run: |
+ sudo apt-get install -q -y libssl-dev libcurl4-openssl-dev libexpat-dev gettext zlib1g-dev
+ - uses: actions/checkout@v2
+ - run: make sparse
documentation:
needs: ci-config
if: needs.ci-config.outputs.enabled == 'yes'