Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

10285 stock history update #10286

Merged
merged 16 commits into from
Jan 29, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
144 changes: 144 additions & 0 deletions .github/workflows/coop_stg_ci_cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
name: COOP-STG Build & Deployment Pipeline

on:
push:
branches:
- coop-stg

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/coop</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/coopaudit</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@v3
with:
name: build-artifacts
path: target/*.war

# - 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@v3
with:
name: build-artifacts
path: ./

- name: Deploy to Payara
env:
SERVER_IP: ${{ secrets.COOP_STG_SERVER_IP }}
SERVER_USER: ${{ secrets.COOP_STG_SERVER_USER }}
SSH_PRIVATE_KEY: ${{ secrets.COOP_STG_SSH_PRIVATE_KEY }}
PAYARA_ADMIN_PASS: ${{ secrets.COOP_STG_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="coop.war"
WAR_DIR="/home/appuser/app/latest"
APP_NAME="coop"
SUBDOMAIN="stg"

# 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
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:/tmp/$WAR_NAME

# Move the file to /home/appuser/app/latest/ and set permissions
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
"

# 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_STG_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_STG_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
33 changes: 33 additions & 0 deletions src/main/java/com/divudi/bean/common/ControllerTemplate.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package com.divudi.bean.common;

import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;

/**
*
* @author Dr M H B Ariyaratne [email protected] 0094 71 5812399
*
*/
@Named
@SessionScoped
public class ControllerTemplate implements Serializable {

// <editor-fold defaultstate="collapsed" desc="EJBs">
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="Controllers">
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="Class Variables">
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="Constructors">
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="Navigation Methods">
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="Functions">
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="Getters and Setters">
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="Inner Classes">
// </editor-fold>

}
Original file line number Diff line number Diff line change
Expand Up @@ -857,7 +857,7 @@ public String navigatePatientAdmit() {
return "/inward/inward_admission?faces-redirect=true;";

}

public String navigateToConvertNonBhtToBht(Admission nonBhtAd) {
Admission ad = new Admission();
if (ad.getDateOfAdmission() == null) {
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/divudi/bean/common/ReportsController.java
Original file line number Diff line number Diff line change
Expand Up @@ -3019,7 +3019,7 @@ public ReportTemplateRowBundle generateCollectingCenterBillWiseBillItems(List<Bi
}

if (site != null) {
jpql += "AND bill.department.site = :site ";
jpql += "AND bill.toDepartment.site = :site ";
parameters.put("site", site);
}
if (webUser != null) {
Expand Down Expand Up @@ -4564,7 +4564,7 @@ public void exportCollectionCenterBillWiseDetailReportToExcel() {
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment; filename=Collection_Center_Report.xlsx");

SimpleDateFormat sdf = new SimpleDateFormat("dd MMMM yyyy HH:mm:ss");
SimpleDateFormat sdf = new SimpleDateFormat("dd MM yyyy hh:mm:ss a");

try (XSSFWorkbook workbook = new XSSFWorkbook(); OutputStream out = response.getOutputStream()) {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1385,7 +1385,7 @@ public void saveConvertSelected() {
getCurrentNonBht().setParentEncounter(current);
getCurrentNonBht().setDischarged(true);
getCurrentNonBht().setDateOfDischarge(new Date());
getCurrentNonBht().setConvertedToBht(true);
getCurrentNonBht().setConvertedToAnotherEncounter(true);
getFacade().edit(currentNonBht);
currentNonBht = null;

Expand Down
Loading