51 lines
1.2 KiB
Bash
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
|