hs.hsadmin.ng/bin/git-pull-and-if-origin-changed-run-tests
Michael Hönnig c2ea66a87f some comment
2024-09-26 13:45:49 +02:00

54 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
# waits for commits on any branch on origin, pulls and build it
# Configuration: Set the remote repository name and check interval
BUILD_CMD="gw-test" # Placeholder for the build command
# Fetch the latest updates from the origin
git fetch origin
# Keep track of local branches at the start
local_branches=$(git branch -r | sed 's/origin\///')
while true; do
echo "Checking for new branches..."
# Fetch the latest updates from the origin
git fetch origin
# List the remote branches after fetching and compare with local branches
new_branches=$(git branch -r | sed 's/origin\///' | grep -Fxv "$local_branches")
if [ -n "$new_branches" ]; then
for branch in $new_branches; do
echo "New branch detected: $branch"
# Check out the new branch locally
git checkout -b "$branch" "origin/$branch"
# Placeholder for build process (replace $BUILD_CMD with actual build steps)
echo "Building branch $branch..."
# eval "$BUILD_CMD"
# Update the local branch list
local_branches="$local_branches $branch"
done
else
echo "No new branches found."
fi
# wait 10s with a little animation
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