odex25_standard/scripts/pull_code.sh

51 lines
1.2 KiB
Bash

#!/bin/bash
# Author: Moutaz Muhammad <M.MUHAMMAD@exp-sa.com>
set -euo pipefail
# Validate input parameters
if [ "$#" -lt 5 ]; then
echo "** [ERROR] Usage: $0 <project_user> <project_path> <project_service> <stage> <folder> <branch>"
exit 1
fi
PROJECT_USER="$1"
PROJECT_PATH="$2"
PROJECT_SERVICE="$3"
STAGE="$4"
FOLDER="$5"
BRANCH="$6"
GH_TOKEN="$7"
# Stash changes before pulling
sudo -u "$PROJECT_USER" bash -c "
cd '$PROJECT_PATH/$STAGE/$FOLDER' && \
echo 'echo \"$GH_TOKEN\"' > ~/git-askpass.sh && \
chmod +x ~/git-askpass.sh && \
export GIT_ASKPASS=~/git-askpass.sh && \
git config --global core.askPass ~/git-askpass.sh && \
git config --global user.name 'github-actions' && \
git config --global user.email 'github-actions@github.com' && \
git stash && \
git stash clear && \
git pull origin '$BRANCH'"
if [ $? -eq 0 ]; then
echo "** [INFO] Git pull origin $BRANCH command executed successfully."
else
echo "** [ERROR] Git pull origin $BRANCH command failed."
exit 1
fi
sudo -u odoo bash -c "rm -f ~/git-askpass.sh"
# Restart the project service
sudo systemctl restart "$PROJECT_SERVICE"
if [ $? -eq 0 ]; then
echo "** [INFO] $BRANCH service has been restarted."
else
echo "** [ERROR] Failed to restart $BRANCH service."
exit 1
fi