Skip to content

chore: added readme for graphdb instance #203

chore: added readme for graphdb instance

chore: added readme for graphdb instance #203

Workflow file for this run

name: Deploy Backend
on:
push:
branches: [ "main" ] # adjust to your branch
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '21'
- name: Build with Maven
run: mvn clean package -DskipTests
- name: Copy JAR to EC2
uses: appleboy/scp-action@v0.1.7
with:
host: ${{ secrets.EC2_HOST }}
username: ec2-user
key: ${{ secrets.EC2_SSH_KEY }}
source: "target/cs203-project-*.jar"
target: "/home/ec2-user/"
strip_components: 1
- name: Rename JAR file
uses: appleboy/ssh-action@v0.1.10
with:
host: ${{ secrets.EC2_HOST }}
username: ec2-user
key: ${{ secrets.EC2_SSH_KEY }}
script: |
mv /home/ec2-user/cs203-project-*.jar /home/ec2-user/app.jar
- name: Restart Spring Boot service
uses: appleboy/ssh-action@v0.1.10
with:
host: ${{ secrets.EC2_HOST }}
username: ec2-user
key: ${{ secrets.EC2_SSH_KEY }}
script: |
# Update systemd service file with environment variables
sudo tee /etc/systemd/system/springboot-app.service > /dev/null <<EOF
[Unit]
Description=Spring Boot Application
After=network.target
[Service]
Type=simple
User=ec2-user
WorkingDirectory=/home/ec2-user
ExecStart=/usr/bin/java -jar /home/ec2-user/app.jar
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal
SyslogIdentifier=springboot-app
Environment="SPRING_PROFILES_ACTIVE=local"
Environment="DB_URL=${{ secrets.DB_URL }}"
Environment="DB_USERNAME=${{ secrets.DB_USERNAME }}"
Environment="DB_PASSWORD=${{ secrets.DB_PASSWORD }}"
Environment="DB_DRIVER_CLASS_NAME=org.postgresql.Driver"
Environment="DB_HIBERNATE_DIALECT=org.hibernate.dialect.PostgreSQLDialect"
Environment="REDIS_URL=${{ secrets.REDIS_URL }}"
Environment="REDIS_PORT=${{ secrets.REDIS_PORT }}"
Environment="REDIS_USERNAME=${{ secrets.REDIS_USERNAME }}"
Environment="REDIS_PASSWORD=${{ secrets.REDIS_PASSWORD }}"
Environment="COGNITO_ISSUER=${{ secrets.COGNITO_ISSUER }}"
Environment="COGNITO_TOKEN_SIGNING_KEY_URL=${{ secrets.COGNITO_TOKEN_SIGNING_KEY_URL }}"
Environment="COGNITO_DOMAIN=${{ secrets.COGNITO_DOMAIN }}"
Environment="AWS_REGION=${{ secrets.AWS_REGION }}"
Environment="COGNITO_CLIENT_ID=${{ secrets.COGNITO_CLIENT_ID }}"
[Install]
WantedBy=multi-user.target
EOF
# Reload and restart service
sudo systemctl daemon-reload
sudo systemctl restart springboot-app