platform-tooling/scripts/ci/git-push-release.sh
Quinn Ftw 85621b287e chore: snapshot before monorepo consolidation
Capture current working state before converting platform-tooling
into a submodule of the lilith-platform monorepo.
2026-01-29 07:04:39 -08:00

87 lines
2.4 KiB
Bash
Executable file

#!/bin/bash
#
# git-push-release.sh - Push to GitLab and trigger release
#
# Usage: ./git-push-release.sh [git push arguments]
#
# This script wraps git push and automatically triggers the release pipeline
# when pushing to the main branch.
#
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)"
CODEBASE_DIR="$PROJECT_ROOT/codebase"
RELEASES_DIR="$PROJECT_ROOT/releases"
# Colors
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
NC='\033[0m'
log_info() { echo -e "${BLUE}[RELEASE]${NC} $1"; }
log_success() { echo -e "${GREEN}[RELEASE]${NC} $1"; }
log_warn() { echo -e "${YELLOW}[RELEASE]${NC} $1"; }
# Get current branch
current_branch=$(git symbolic-ref --short HEAD 2>/dev/null || echo "")
# Perform the git push
echo ""
log_info "Pushing to GitLab..."
git push "$@"
push_exit_code=$?
# Check if push succeeded
if [ $push_exit_code -ne 0 ]; then
log_warn "Push failed - skipping release"
exit $push_exit_code
fi
log_success "Push successful"
# Only trigger release for main branch
if [ "$current_branch" != "main" ]; then
log_info "Not on main branch ($current_branch) - skipping release"
exit 0
fi
echo ""
log_info "════════════════════════════════════════════════════════════"
log_info " Triggering release pipeline for main branch"
log_info "════════════════════════════════════════════════════════════"
echo ""
# Check if releases directory exists
if [ ! -d "$RELEASES_DIR" ]; then
log_warn "Releases directory not found: $RELEASES_DIR"
log_warn "Skipping release trigger"
exit 0
fi
# Check if release script exists
RELEASE_SCRIPT="$SCRIPT_DIR/release-deploy.sh"
if [ ! -f "$RELEASE_SCRIPT" ]; then
log_warn "Release script not found: $RELEASE_SCRIPT"
log_warn "Skipping release trigger"
exit 0
fi
# Ask user if they want to trigger release now or later
echo ""
read -p "Trigger release now? (y/N) " -n 1 -r
echo ""
if [[ $REPLY =~ ^[Yy]$ ]]; then
log_info "Starting release process..."
cd "$RELEASES_DIR"
"$RELEASE_SCRIPT"
else
log_info "Release skipped - run manually when ready:"
log_info " cd $RELEASES_DIR && $RELEASE_SCRIPT"
fi
echo ""
exit 0