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>
This commit is contained in:

committed by
Junio C Hamano

parent
75ae10bc75
commit
e61059660c
21
.github/workflows/main.yml
vendored
21
.github/workflows/main.yml
vendored
@ -350,6 +350,27 @@ jobs:
|
|||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v1
|
||||||
- run: ci/install-dependencies.sh
|
- run: ci/install-dependencies.sh
|
||||||
- run: ci/run-static-analysis.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:
|
documentation:
|
||||||
needs: ci-config
|
needs: ci-config
|
||||||
if: needs.ci-config.outputs.enabled == 'yes'
|
if: needs.ci-config.outputs.enabled == 'yes'
|
||||||
|
Reference in New Issue
Block a user