Skip to content

Commit

Permalink
Merge pull request #10624 from hmislk/development
Browse files Browse the repository at this point in the history
Update RHM
  • Loading branch information
DARKDRAGON-LK authored Feb 18, 2025
2 parents 398ec26 + fd00a63 commit 584fa2f
Show file tree
Hide file tree
Showing 49 changed files with 2,579 additions and 539 deletions.
21 changes: 8 additions & 13 deletions .github/workflows/coop_prod_ci_cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,6 @@ jobs:
steps:
- name: Checkout Code
uses: actions/checkout@v3
with:
ref: 'coop-prod'

- name: Download Build Artifact
uses: actions/download-artifact@v4
Expand All @@ -84,9 +82,8 @@ jobs:
# Ensure deployment directory exists
ssh -i private_key.pem -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "
sudo mkdir -p $WAR_DIR
sudo chown -R appuser:appuser /home/appuser/app/latest
sudo su - appuser
mkdir -p $WAR_DIR
chown -R appuser:appuser $WAR_DIR
cd $WAR_DIR
# Remove old backup if it exists
Expand All @@ -101,27 +98,24 @@ jobs:
"
# Copy new WAR file to the server
rsync -aL --progress -e "ssh -i private_key.pem" ./*.war $SERVER_USER@$SERVER_IP:/tmp/$WAR_NAME
rsync -aL --progress -e "ssh -i private_key.pem" ./*.war $SERVER_USER@$SERVER_IP:$WAR_DIR/$WAR_NAME
# Move the file to /home/appuser/app/latest/ and set permissions
# Set the WAR file permission
ssh -i private_key.pem -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "
sudo mv /tmp/$WAR_NAME $WAR_DIR/
sudo chown appuser:appuser $WAR_DIR/$WAR_NAME
chown appuser:appuser $WAR_DIR/$WAR_NAME
"
# Deploy the WAR using asadmin
ssh -i private_key.pem -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "
sudo su - appuser
echo 'AS_ADMIN_PASSWORD=${{ secrets.COOP_PROD_PAYARA_ADMIN_PASS }}' > /tmp/payara-admin-pass.txt
echo 'AS_ADMIN_PASSWORD=$PAYARA_ADMIN_PASS' > /tmp/payara-admin-pass.txt
/opt/payara5/bin/asadmin --user admin --passwordfile /tmp/payara-admin-pass.txt undeploy $APP_NAME || true
/opt/payara5/bin/asadmin --user admin --passwordfile /tmp/payara-admin-pass.txt deploy --force=true --contextroot $APP_NAME $WAR_DIR/$WAR_NAME
rm /tmp/payara-admin-pass.txt
"
# Validate if the application is running
ssh -i private_key.pem -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "
sudo su - appuser
echo 'AS_ADMIN_PASSWORD=${{ secrets.COOP_PROD_PAYARA_ADMIN_PASS }}' > /tmp/payara-admin-pass.txt
echo 'AS_ADMIN_PASSWORD=$PAYARA_ADMIN_PASS' > /tmp/payara-admin-pass.txt
if /opt/payara5/bin/asadmin --user admin --passwordfile /tmp/payara-admin-pass.txt list-applications | grep -q '$APP_NAME'; then
echo 'Application is running.'
else
Expand All @@ -145,3 +139,4 @@ jobs:
# Cleanup
rm -f private_key.pem
141 changes: 141 additions & 0 deletions .github/workflows/digasiri_prod_ci_cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
name: DIGASIRI-PROD Build & Deployment Pipeline

on:
push:
branches:
- digasiri-prod

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout Code
uses: actions/checkout@v3

- name: Set up JDK 11
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '11'

- name: Cache Maven Packages
uses: actions/cache@v3
with:
path: ~/.m2
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Update JDBC Data Sources in persistence.xml
run: |
sed -i 's|<jta-data-source>${JDBC_DATASOURCE}</jta-data-source>|<jta-data-source>jdbc/digasiri</jta-data-source>|' src/main/resources/META-INF/persistence.xml
sed -i 's|<jta-data-source>${JDBC_AUDIT_DATASOURCE}</jta-data-source>|<jta-data-source>jdbc/digasiriAudit</jta-data-source>|' src/main/resources/META-INF/persistence.xml
- name: Verify JDBC Data Sources in persistence.xml
run: |
grep '<jta-data-source>' src/main/resources/META-INF/persistence.xml
- name: Build with Maven
run: mvn clean package -DskipTests

- name: Archive Build Artifacts
uses: actions/upload-artifact@v4
with:
name: build-artifacts
path: target/*.war
overwrite: true

# - name: Run Tests
# run: mvn test

deploy:
needs: build
runs-on: ubuntu-latest

steps:
- name: Checkout Code
uses: actions/checkout@v3

- name: Download Build Artifact
uses: actions/download-artifact@v4
with:
name: build-artifacts
path: ./

- name: Deploy to Payara
env:
SERVER_IP: ${{ secrets.DIGASIRI_PROD_SERVER_IP }}
SERVER_USER: ${{ secrets.DIGASIRI_PROD_SERVER_USER }}
SSH_PRIVATE_KEY: ${{ secrets.DIGASIRI_PROD_SSH_PRIVATE_KEY }}
PAYARA_ADMIN_PASS: ${{ secrets.DIGASIRI_PROD_PAYARA_ADMIN_PASS }}
run: |
# Add SSH private key to the SSH agent
echo "$SSH_PRIVATE_KEY" > private_key.pem
chmod 600 private_key.pem
# Variables
WAR_NAME="digasiri.war"
WAR_DIR="/home/appuser/app/latest"
APP_NAME="digasiri"
SUBDOMAIN="digasiri"
# Ensure deployment directory exists
ssh -i private_key.pem -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "
mkdir -p $WAR_DIR
chown -R appuser:appuser $WAR_DIR
cd $WAR_DIR
# Remove old backup if it exists
if [ -f $WAR_NAME.old ]; then
rm $WAR_NAME.old
fi
# If the current WAR file exists, back it up
if [ -f $WAR_NAME ]; then
mv $WAR_NAME $WAR_NAME.old
fi
"
# Copy new WAR file to the server
rsync -aL --progress -e "ssh -i private_key.pem" ./*.war $SERVER_USER@$SERVER_IP:$WAR_DIR/$WAR_NAME
# Set the WAR file permission
ssh -i private_key.pem -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "
chown appuser:appuser $WAR_DIR/$WAR_NAME
"
# Deploy the WAR using asadmin
ssh -i private_key.pem -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "
echo 'AS_ADMIN_PASSWORD=$PAYARA_ADMIN_PASS' > /tmp/payara-admin-pass.txt
/opt/payara5/bin/asadmin --user admin --passwordfile /tmp/payara-admin-pass.txt undeploy $APP_NAME || true
/opt/payara5/bin/asadmin --user admin --passwordfile /tmp/payara-admin-pass.txt deploy --force=true --contextroot $APP_NAME $WAR_DIR/$WAR_NAME
rm /tmp/payara-admin-pass.txt
"
# Validate if the application is running
ssh -i private_key.pem -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "
echo 'AS_ADMIN_PASSWORD=$PAYARA_ADMIN_PASS' > /tmp/payara-admin-pass.txt
if /opt/payara5/bin/asadmin --user admin --passwordfile /tmp/payara-admin-pass.txt list-applications | grep -q '$APP_NAME'; then
echo 'Application is running.'
else
echo 'Application failed to start.'
fi
rm /tmp/payara-admin-pass.txt
"
# Check if the application is reachable
for i in {1..5}; do
RESPONSE_CODE=$(curl -s -o /dev/null -w "%{http_code}" https://$SUBDOMAIN.carecode.org/$APP_NAME/faces/index1.xhtml)
if [ "$RESPONSE_CODE" == "200" ]; then
echo "Application is reachable and healthy."
break
elif [ "$i" == "5" ]; then
echo "Application is not reachable or unhealthy at https://$SUBDOMAIN.carecode.org/$APP_NAME (HTTP $RESPONSE_CODE)"
break
fi
sleep 10
done
# Cleanup
rm -f private_key.pem
28 changes: 11 additions & 17 deletions .github/workflows/rmh_prod_ci_cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,6 @@ jobs:
steps:
- name: Checkout Code
uses: actions/checkout@v3
with:
ref: 'rmh-prod'

- name: Download Build Artifact
uses: actions/download-artifact@v4
Expand All @@ -67,10 +65,10 @@ jobs:

- name: Deploy to Payara
env:
SERVER_IP: ${{ secrets.COOP_PROD_SERVER_IP }}
SERVER_USER: ${{ secrets.COOP_PROD_SERVER_USER }}
SSH_PRIVATE_KEY: ${{ secrets.COOP_PROD_SSH_PRIVATE_KEY }}
PAYARA_ADMIN_PASS: ${{ secrets.COOP_PROD_PAYARA_ADMIN_PASS }}
SERVER_IP: ${{ secrets.RMH_PROD_SERVER_IP }}
SERVER_USER: ${{ secrets.RMH_PROD_SERVER_USER }}
SSH_PRIVATE_KEY: ${{ secrets.RMH_PROD_SSH_PRIVATE_KEY }}
PAYARA_ADMIN_PASS: ${{ secrets.RMH_PROD_PAYARA_ADMIN_PASS }}
run: |
# Add SSH private key to the SSH agent
echo "$SSH_PRIVATE_KEY" > private_key.pem
Expand All @@ -84,9 +82,8 @@ jobs:
# Ensure deployment directory exists
ssh -i private_key.pem -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "
sudo mkdir -p $WAR_DIR
sudo chown -R appuser:appuser /home/appuser/app/latest
sudo su - appuser
mkdir -p $WAR_DIR
chown -R appuser:appuser $WAR_DIR
cd $WAR_DIR
# Remove old backup if it exists
Expand All @@ -101,27 +98,24 @@ jobs:
"
# Copy new WAR file to the server
rsync -aL --progress -e "ssh -i private_key.pem" ./*.war $SERVER_USER@$SERVER_IP:/tmp/$WAR_NAME
rsync -aL --progress -e "ssh -i private_key.pem" ./*.war $SERVER_USER@$SERVER_IP:$WAR_DIR/$WAR_NAME
# Move the file to /home/appuser/app/latest/ and set permissions
# Set the WAR file permission
ssh -i private_key.pem -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "
sudo mv /tmp/$WAR_NAME $WAR_DIR/
sudo chown appuser:appuser $WAR_DIR/$WAR_NAME
chown appuser:appuser $WAR_DIR/$WAR_NAME
"
# Deploy the WAR using asadmin
ssh -i private_key.pem -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "
sudo su - appuser
echo 'AS_ADMIN_PASSWORD=${{ secrets.COOP_PROD_PAYARA_ADMIN_PASS }}' > /tmp/payara-admin-pass.txt
echo 'AS_ADMIN_PASSWORD=$PAYARA_ADMIN_PASS' > /tmp/payara-admin-pass.txt
/opt/payara5/bin/asadmin --user admin --passwordfile /tmp/payara-admin-pass.txt undeploy $APP_NAME || true
/opt/payara5/bin/asadmin --user admin --passwordfile /tmp/payara-admin-pass.txt deploy --force=true --contextroot $APP_NAME $WAR_DIR/$WAR_NAME
rm /tmp/payara-admin-pass.txt
"
# Validate if the application is running
ssh -i private_key.pem -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "
sudo su - appuser
echo 'AS_ADMIN_PASSWORD=${{ secrets.COOP_PROD_PAYARA_ADMIN_PASS }}' > /tmp/payara-admin-pass.txt
echo 'AS_ADMIN_PASSWORD=$PAYARA_ADMIN_PASS' > /tmp/payara-admin-pass.txt
if /opt/payara5/bin/asadmin --user admin --passwordfile /tmp/payara-admin-pass.txt list-applications | grep -q '$APP_NAME'; then
echo 'Application is running.'
else
Expand Down
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.divudi</groupId>
<artifactId>rh</artifactId>
<artifactId>coop</artifactId>
<version>3.0.0</version>
<packaging>war</packaging>
<name>rh</name>
<name>coop</name>

<properties>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
Expand Down
Loading

0 comments on commit 584fa2f

Please sign in to comment.