fix: jvm heap memory #81
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Dev CI/CI Pipeline | |
on: | |
push: | |
branches: | |
- dev | |
jobs: | |
build-and-deploy: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '21' | |
distribution: 'zulu' | |
- name: Save SSH key | |
run: | | |
mkdir -p ~/.ssh | |
echo "${{ secrets.EC2_DEV_SSH_KEY }}" > /tmp/ssh_key.pem | |
chmod 600 /tmp/ssh_key.pem | |
ssh-keyscan -H ${{ secrets.EC2_DEV_HOST }} >> ~/.ssh/known_hosts | |
- name: Set up SSH Tunnel for RDS | |
run: ssh -i /tmp/ssh_key.pem -f -N -L 13306:${{ secrets.RDS_DEV_HOST }} ${{ secrets.EC2_DEV_USER }}@${{ secrets.EC2_DEV_HOST }} | |
- name: Set up SSH Tunnel for Redis | |
run: ssh -i /tmp/ssh_key.pem -f -N -L ${{ secrets.REDIS_PORT_DEV }}:${{ secrets.REDIS_HOST_DEV }}:${{ secrets.REDIS_PORT_DEV }} ${{ secrets.EC2_DEV_USER }}@${{ secrets.EC2_DEV_HOST }} | |
- name: Build with Gradle | |
run: ./gradlew clean build | |
env: | |
DB_URL: ${{ secrets.DB_URL_LOCAL }} | |
DB_USERNAME: ${{ secrets.DB_USERNAME_DEV }} | |
DB_PASSWORD: ${{ secrets.DB_PASSWORD_DEV }} | |
AWS_SES_ACCESS_KEY: ${{ secrets.AWS_SES_ACCESS_KEY }} | |
AWS_SES_SECRET_ACCESS_KEY: ${{ secrets.AWS_SES_SECRET_ACCESS_KEY }} | |
JWT_SECRET_KEY: ${{ secrets.JWT_SECRET_KEY }} | |
REDIS_HOST: ${{ secrets.REDIS_HOST_DEV }} | |
REDIS_PORT: ${{ secrets.REDIS_PORT_DEV }} | |
- name: Remove SSH KEY | |
run: rm /tmp/ssh_key.pem | |
- name: Deploy Docker files to EC2 | |
uses: appleboy/scp-action@v0.1.7 | |
with: | |
host: ${{ secrets.EC2_DEV_HOST }} | |
username: ${{ secrets.EC2_DEV_USER }} | |
key: ${{ secrets.EC2_DEV_SSH_KEY }} | |
port: 22 | |
source: "Dockerfile,docker-compose.yml,prometheus.yml,build/libs/circle-on-0.0.1-SNAPSHOT.jar" | |
target: "~/circle-on" | |
- name: Run Docker Compose on EC2 | |
uses: appleboy/ssh-action@v1.0.3 | |
with: | |
host: ${{ secrets.EC2_DEV_HOST }} | |
username: ${{ secrets.EC2_DEV_USER }} | |
key: ${{ secrets.EC2_DEV_SSH_KEY }} | |
port: 22 | |
script: | | |
mkdir -p ~/circle-on | |
cd ~/circle-on | |
export DB_URL=${{ secrets.DB_URL_DEV }} | |
export DB_USERNAME=${{ secrets.DB_USERNAME_DEV }} | |
export DB_PASSWORD=${{ secrets.DB_PASSWORD_DEV }} | |
export AWS_SES_ACCESS_KEY=${{ secrets.AWS_SES_ACCESS_KEY }} | |
export AWS_SES_SECRET_ACCESS_KEY=${{ secrets.AWS_SES_SECRET_ACCESS_KEY }} | |
export JWT_SECRET_KEY=${{ secrets.JWT_SECRET_KEY }} | |
export IMAGE_STORAGE_PATH=${{ secrets.IMAGE_STORAGE_PATH }} | |
export REDIS_HOST=${{ secrets.REDIS_HOST_DEV }} | |
export REDIS_PORT=${{ secrets.REDIS_PORT_DEV }} | |
export LOG_STORAGE_PATH=${{ secrets.LOG_STORAGE_PATH }} | |
export LOG_PATH=${{ secrets.LOG_PATH }} | |
export PROMETHEUS_PATH=${{ secrets.PROMETHEUS_PATH }} | |
export GRAFANA_PASSWORD=${{ secrets.GRAFANA_PASSWORD }} | |
export JAVA_OPTS=-Xms800m -Xmx1.6g -XX:+UseG1GC -XX:InitiatingHeapOccupancyPercent=60 -XX:+UseContainerSupport | |
docker compose down | |
docker compose up --build -d | |