You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.8 KiB
72 lines
1.8 KiB
#!/bin/sh
|
|
# git hook: post-receive
|
|
|
|
# !!! PLEASE ADJUST !!!
|
|
server=http://jenkins.example.org
|
|
projectname=ADJUSTME
|
|
token=ADJUSTME
|
|
|
|
trigger_jenkins()
|
|
{
|
|
oldrev=$(git rev-parse "$1")
|
|
newrev=$(git rev-parse "$2")
|
|
refname="$3"
|
|
|
|
if expr "$oldrev" : '0*$' >/dev/null ; then
|
|
change_type="create"
|
|
else
|
|
if expr "$newrev" : '0*$' >/dev/null ; then
|
|
change_type="delete"
|
|
else
|
|
change_type="update"
|
|
fi
|
|
fi
|
|
|
|
newrev_type=$(git cat-file -t "$newrev" 2> /dev/null)
|
|
|
|
case "$change_type" in
|
|
create|update)
|
|
rev_type="$newrev_type"
|
|
;;
|
|
delete)
|
|
return # we are not interested in deletes
|
|
;;
|
|
esac
|
|
|
|
case "$refname","$rev_type" in
|
|
refs/heads/*,commit)
|
|
# branch
|
|
branch_name=${refname##refs/heads/}
|
|
;;
|
|
esac
|
|
|
|
echo "Detected branch $branch_name"
|
|
|
|
# trigger autobuild
|
|
if wget --tries=2 --dns-timeout=5 --connect-timeout=5 --read-timeout=5 \
|
|
-O /dev/null "${server}/job/${projectname}/buildWithParameters?token=$token&branch=origin/${branch_name}" >/dev/null 2>&1 ; then
|
|
echo "Triggered autobuild at ${server}/job/${projectname}/lastBuild/"
|
|
else
|
|
echo "Could not trigger autobuild at ${server} (project not present/set up?)"
|
|
fi
|
|
|
|
# or with curl:
|
|
# cause=git-hook-trigger
|
|
# if curl --insecure --max-time 5 --connect-timeout 5 \
|
|
# --data-urlencode "token=${token}" \
|
|
# --data-urlencode "cause=${cause}" \
|
|
# --data-urlencode "branch=${branch_name}" \
|
|
# "${server}/job/${projectname}/buildWithParameters" >/dev/null 2>&1; then
|
|
# ...
|
|
}
|
|
|
|
if [ -n "$1" ] && [ -n "$2" ] && [ -n "$3" ]; then
|
|
trigger_jenkins "$2" "$3" "$1"
|
|
else
|
|
while read -r oldrev newrev refname; do
|
|
trigger_jenkins "$oldrev" "$newrev" "$refname"
|
|
done
|
|
fi
|
|
|
|
# vim:foldmethod=marker ts=2 ft=sh ai expandtab sw=2
|