el-get/test/github-actions.sh
stephan-cr 887bedb495
Remove ERT and "package" installation in CI (#2906)
* Remove ERT and "package" installation in CI

Since Emacs 23 is dropped for quite some time now, remove installation
of ERT and "package", because they are built-in since Emacs 24.

* Remove "prereqs" function left-overs
2023-06-19 11:38:53 +02:00

75 lines
2.3 KiB
Bash

# source me
# Define the following functions here to keep .github/workflows/test.yml nice and tidy
# - byte-compile()
# - check-recipes()
# - check-whitespace()
# - ert-tests()
BASE=$(cat "$GITHUB_EVENT_PATH" | jq -r '.pull_request.base.sha')
if [ "$BASE" = 'null' ]; then
BASE=$(cat "$GITHUB_EVENT_PATH" | jq -r '.before')
fi
HEAD=$(cat "$GITHUB_EVENT_PATH" | jq -r '.pull_request.head.sha')
if [ "$HEAD" = 'null' ]; then
HEAD=$(cat "$GITHUB_EVENT_PATH" | jq -r '.after')
fi
COMMIT_RANGE="${BASE}..${HEAD}"
if [ "$EMACS_VERSION" = '24.5' ]; then
# check-recipes [-W<check>...] <path>
check-recipes() {
emacs -Q -L . -batch -l el-get-check -f el-get-check-recipe-batch "$@"
}
check-whitespace() {
git --no-pager -c core.whitespace=tab-in-indent diff --check "$COMMIT_RANGE"
}
# Adapted from Emacs' build-aux/git-hooks/pre-commit.
check-filenames() {
git diff --name-only --diff-filter=A "$COMMIT_RANGE" |
grep -E '^-|/-|[^-+./_0-9A-Z_a-z]' |
while IFS= read -r new_name; do
case $new_name in
-* | */-*)
echo "$new_name: File name component begins with '-'."
return 1;;
*)
echo "$new_name: File name does not consist of -+./_ or ASCII letters or digits."
return 1;;
esac
done
}
else
# If we have only changes to recipe files, there is no need to run
# with more than 1 emacs version.
git diff --name-only "$COMMIT_RANGE" | grep -Fvq recipes/ ||
{ echo 'Recipe only diff, skipping tests' ; exit 0 ; }
# Only need to run these for 1 version, so make them nops here
check-recipes() { :; }
check-whitespace() { :; }
check-filenames() { :; }
fi
ert-tests() {
emacs -batch -Q $EMACS_OPT -L . -l test/el-get-tests.el -f ert-run-tests-batch-and-exit
}
# byte-compile [-Werror] <files>...
byte-compile() {
error_on_warning=nil
if [ "$1" = "-Werror" ] ; then
error_on_warning=t
shift
fi
emacs -Q -L . -L methods/ -batch \
--eval "(setq byte-compile-error-on-warn $error_on_warning)" \
-f batch-byte-compile "$@"
}
shopt -s nullglob
# show definitions for log
declare -f byte-compile ert-tests check-recipes check-whitespace