hs.hsadmin.ng/bin/git-pull-and-if-origin-changed-run-tests

40 lines
1.4 KiB
Plaintext
Raw Normal View History

#!/bin/bash
2024-09-26 13:59:13 +02:00
# waits for commits on any branch on origin, checks it out and builds it
2024-09-26 14:12:03 +02:00
. .aliases
2024-09-26 12:04:41 +02:00
while true; do
2024-09-26 13:59:13 +02:00
echo "Checking for new commits on any branch ..."
2024-09-26 12:04:41 +02:00
git fetch origin
2024-09-26 14:17:41 +02:00
branch_with_new_commits=`git fetch origin >/dev/null; git for-each-ref --format='%(refname:short) %(upstream:track)' refs/heads | grep '\[behind' | cut -d' ' -f1 | head -n1`
2024-09-26 12:04:41 +02:00
2024-09-26 13:59:13 +02:00
if [ -n "$branch_with_new_commits" ]; then
echo "checking out branch: $branch_with_new_commits"
2024-09-26 14:20:37 +02:00
if git show-ref --quiet --heads "$branch_with_new_commits"; then
echo "Branch $branch_with_new_commits already exists. Checking it out and pulling latest changes."
git checkout "$branch_with_new_commits"
git pull origin "$branch_with_new_commits"
else
echo "Creating and checking out new branch: $branch_with_new_commits"
git checkout -b "$branch_with_new_commits" "origin/$branch_with_new_commits"
fi
2024-09-26 12:04:41 +02:00
2024-09-26 13:59:13 +02:00
echo "building ..."
2024-09-26 14:12:03 +02:00
./gradlew test
2024-09-26 12:04:41 +02:00
fi
# wait 10s with a little animation
2024-09-26 13:59:13 +02:00
echo -e -n " waiting for changes (/) ..."
sleep 2
echo -e -n "\r\033[K waiting for changes (-) ..."
sleep 2
echo -e -n "\r\033[K waiting for changes (\) ..."
sleep 2
echo -e -n "\r\033[K waiting for changes (|) ..."
sleep 2
echo -e -n "\r\033[K waiting for changes ( ) ... "
sleep 2
echo -e -n "\r\033[K checking for changes"
done
2024-09-26 12:04:41 +02:00