10 Commits

4 changed files with 51 additions and 17 deletions

View File

@@ -22,8 +22,6 @@ jobs:
- name: Run deploy script on server - name: Run deploy script on server
run: | run: |
ssh ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} << 'EOF' # We add -tt to force a pseudo-terminal (fixes that stdin error)
echo "✅ PR merged into main — running deploy script..." # We call bash -lc to force a Login Shell, which loads your credentials
cd /home/ubuntu/Bgreen/sgeUpdated ssh -tt ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} "bash -lc 'cd /home/ubuntu/Bgreen/sgeUpdated && ./deploy.sh'"
./deploy.sh
EOF

View File

@@ -3,6 +3,18 @@ set -euo pipefail
cd /home/ubuntu/Bgreen/sgeUpdated cd /home/ubuntu/Bgreen/sgeUpdated
# -----------------------
# Harbor settings
# -----------------------
HARBOR_REGISTRY="10.10.100.110:8085"
HARBOR_PROJECT="bgreen"
BACKEND_IMAGE_REPO="${HARBOR_REGISTRY}/${HARBOR_PROJECT}/bgreen-backend"
FRONTEND_IMAGE_REPO="${HARBOR_REGISTRY}/${HARBOR_PROJECT}/bgreen-frontend"
# Tag images within git commit (better than latest; enables rollback)
VERSION="$(git rev-parse --short HEAD)"
echo "📦 Fetching latest changes from origin/main..." echo "📦 Fetching latest changes from origin/main..."
git fetch myfork main git fetch myfork main
@@ -22,12 +34,12 @@ git reset --hard myfork/main
BACKEND_CHANGED=false BACKEND_CHANGED=false
FRONTEND_CHANGED=false FRONTEND_CHANGED=false
# Check if backend folder changed # Check if backend folder changed (excluding README.md)
if echo "$CHANGED_FILES" | grep "^sge-backend/" | grep -qv "README.md$"; then if echo "$CHANGED_FILES" | grep "^sge-backend/" | grep -qv "README.md$"; then
BACKEND_CHANGED=true BACKEND_CHANGED=true
fi fi
# Check if frontend folder changed # Check if frontend folder changed (excluding README.md)
if echo "$CHANGED_FILES" | grep "^sge-frontend/" | grep -qv "README.md$"; then if echo "$CHANGED_FILES" | grep "^sge-frontend/" | grep -qv "README.md$"; then
FRONTEND_CHANGED=true FRONTEND_CHANGED=true
fi fi
@@ -37,12 +49,25 @@ fi
# ----------------------- # -----------------------
if [ "$BACKEND_CHANGED" = true ]; then if [ "$BACKEND_CHANGED" = true ]; then
echo "⚡ Backend changes detected." echo "⚡ Backend changes detected."
cd sge-backend cd sge-backend
echo "Running Maven build..." echo "Running Maven build..."
/opt/apache-maven-3.9.11/bin/mvn clean install -DskipTests /opt/apache-maven-3.9.11/bin/mvn clean install -DskipTests
cd ../..
echo "Rebuilding backend Docker container..." echo "🐳 Building backend Docker image..."
docker compose up -d --build bgreen-backend docker build -t "${BACKEND_IMAGE_REPO}:${VERSION}" .
echo "📤 Pushing backend image to Harbor..."
docker push "${BACKEND_IMAGE_REPO}:${VERSION}"
echo "📥 Pulling backend image from Harbor (to ensure registry is source of truth)..."
docker pull "${BACKEND_IMAGE_REPO}:${VERSION}"
cd ..
echo "🚀 Recreating backend container using Harbor image..."
VERSION="$VERSION" docker compose up -d bgreen-backend
else else
echo "✅ No backend changes." echo "✅ No backend changes."
fi fi
@@ -56,7 +81,7 @@ if [ "$FRONTEND_CHANGED" = true ]; then
# Check if package.json or package-lock.json changed # Check if package.json or package-lock.json changed
if echo "$CHANGED_FILES" | grep -qE "^sge-frontend/(package\.json|package-lock\.json)$"; then if echo "$CHANGED_FILES" | grep -qE "^sge-frontend/(package\.json|package-lock\.json)$"; then
echo "📦 package.json changed. Running 'npm instal' and 'npm run build'..." echo "📦 package.json changed. Running 'npm install' and 'npm run build'..."
npm install npm install
npm run build npm run build
else else
@@ -64,9 +89,20 @@ if [ "$FRONTEND_CHANGED" = true ]; then
npm run build npm run build
fi fi
cd ../.. echo "🐳 Building frontend Docker image..."
echo "Rebuilding frontend Docker container..." docker build -t "${FRONTEND_IMAGE_REPO}:${VERSION}" .
docker compose up -d --build bgreen-frontend
echo "📤 Pushing frontend image to Harbor..."
docker push "${FRONTEND_IMAGE_REPO}:${VERSION}"
echo "📥 Pulling frontend image from Harbor (to ensure registry is source of truth)..."
docker pull "${FRONTEND_IMAGE_REPO}:${VERSION}"
cd ..
echo "🚀 Recreating frontend container using Harbor image..."
VERSION="$VERSION" docker compose up -d bgreen-frontend
else else
echo "✅ No frontend changes." echo "✅ No frontend changes."
fi fi

View File

@@ -11,7 +11,7 @@
</parent> </parent>
<groupId>com.sgs</groupId> <groupId>com.sgs</groupId>
<artifactId>sgs</artifactId> <artifactId>sgs</artifactId>
<version>0.0.2-SNAPSHOT</version> <version>0.0.3-SNAPSHOT</version>
<name>sgs</name> <name>sgs</name>
<description>SGS project for Spring Boot</description> <description>SGS project for Spring Boot</description>
<properties> <properties>
@@ -130,4 +130,4 @@
<finalName>sgs-backend</finalName> <finalName>sgs-backend</finalName>
</build> </build>
</project> </project>

View File

@@ -1,6 +1,6 @@
{ {
"name": "sgs-web", "name": "sgs-web",
"version": "1.0.2", "version": "1.0.1",
"private": true, "private": true,
"dependencies": { "dependencies": {
"@apollo/client": "^3.13.8", "@apollo/client": "^3.13.8",