Development using git:Quality assurance: Difference between revisions

From Alpine Linux
(Add a git hook to catch common errors early)
 
("sanitycheck" is obsolete, use "validate" instead)
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Before pushing anything to it is good to make sure that:
Before pushing anything to it is good to make sure that:
* The package actually builds
# The package actually builds
* Commit message is good
# Commit message is good
* pkgrel is bumped if needed
# pkgrel is bumped if needed
* no whitespace damage (last chars of a line is whitespace)
# no whitespace damage (last chars of a line is whitespace)


The following git hook will help you catch some common errors early:
The following git hook will help you catch some common errors early:
Line 15: Line 15:
         olddir=$PWD
         olddir=$PWD
         cd ${f%/APKBUILD}
         cd ${f%/APKBUILD}
         if ! abuild sanitycheck && verify; then
         if ! abuild validate && verify; then
                 exit 1
                 exit 1
         fi
         fi
Line 26: Line 26:


Install it as .git/hooks/pre-commit and make it executable.
Install it as .git/hooks/pre-commit and make it executable.
[[Category:Development]]
[[Category:Git]]

Latest revision as of 18:59, 29 October 2025

Before pushing anything to it is good to make sure that:

  1. The package actually builds
  2. Commit message is good
  3. pkgrel is bumped if needed
  4. no whitespace damage (last chars of a line is whitespace)

The following git hook will help you catch some common errors early:

#!/bin/sh

# Redirect output to stderr.
exec 1>&2

git diff --cached --name-only HEAD | grep 'APKBUILD$' | while read f; do
        olddir=$PWD
        cd ${f%/APKBUILD}
        if ! abuild validate && verify; then
                exit 1
        fi
        cd "$olddir"
done

# If there are whitespace errors, print the offending file names and fail.
exec git diff-index --check --cached HEAD --

Install it as .git/hooks/pre-commit and make it executable.