summaryrefslogtreecommitdiff
path: root/Biz/Ide/hooks
diff options
context:
space:
mode:
Diffstat (limited to 'Biz/Ide/hooks')
-rwxr-xr-xBiz/Ide/hooks/pre-push35
1 files changed, 34 insertions, 1 deletions
diff --git a/Biz/Ide/hooks/pre-push b/Biz/Ide/hooks/pre-push
index c27046d..a1dccc3 100755
--- a/Biz/Ide/hooks/pre-push
+++ b/Biz/Ide/hooks/pre-push
@@ -1,2 +1,35 @@
#!/usr/bin/env bash
-lint "${BIZ_ROOT:?}"/**/* && bild --test "${BIZ_ROOT:?}"/**/*
+#
+# a simple ci that saves its results in a git note, formatted according to
+# RFC-2822, more or less.
+#
+##
+ set -euo pipefail
+ [[ -n $(git status -s) ]] && { echo fail: dirty worktree; exit 1; }
+##
+ at=$(date -R)
+ user=$(git config --get user.name)
+ mail=$(git config --get user.email)
+##
+ if lint "${BIZ_ROOT:?}"/**/*
+ then
+ lint_result="good"
+ else
+ lint_result="fail"
+ fi
+##
+ git notes --ref=ci append -m "Lint-is: $lint_result"
+ git notes --ref=ci append -m "Lint-by: $user <$mail>"
+ git notes --ref=ci append -m "Lint-at: $at"
+##
+ if bild --test "${BIZ_ROOT:?}"/**/*
+ then
+ test_result="good"
+ else
+ test_result="fail"
+ fi
+##
+ git notes --ref=ci append -m "Test-is: $test_result"
+ git notes --ref=ci append -m "Test-by: $user <$mail>"
+ git notes --ref=ci append -m "Test-at: $at"
+##