Skip to content

fix: AI 응답 복호화 전 유효성 검사 추가 #174

fix: AI 응답 복호화 전 유효성 검사 추가

fix: AI 응답 복호화 전 유효성 검사 추가 #174

Workflow file for this run

name: Java CI with Gradle
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
# Gradle wrapper에 실행 권한 부여
- name: Give Gradle wrapper execute permissions
run: chmod +x ./gradlew
- name: Setup Gradle
uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0
### application.properties (main) 생성
- name: Generate application.properties (main)
run: |
mkdir -p src/main/resources
echo "${{ secrets.APPLICATION_PROPERTIES }}" > src/main/resources/application.properties
### application.properties (test) 생성
- name: Generate application.properties (test)
run: |
mkdir -p src/test/resources
echo "${{ secrets.APPLICATION_TEST_PROPERTIES }}" > src/test/resources/application.properties
### Gradle Build (테스트 제외)
- name: Build with Gradle Wrapper
run: ./gradlew build -x test
### Docker 로그인
- name: Docker login
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
### Docker 이미지 빌드 및 푸시
- name: Build and push Docker image
run: |
docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }}:${{ github.sha }} -f ./Dockerfile .
docker push ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }}:${{ github.sha }}
### EC2 배포
- name: Deploy to EC2
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
echo "Starting deployment..."
cd ~/howWeather-backend
echo "Pulling latest changes from main branch..."
git fetch --all
git reset --hard origin/main
echo "Pulling latest Docker image..."
docker pull ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }}:${{ github.sha }}
echo "Setting environment variables..."
cat > .env <<EOL
SPRING_DATASOURCE_URL=${{ secrets.SPRING_DATASOURCE_URL }}
SPRING_DATASOURCE_USERNAME=${{ secrets.SPRING_DATASOURCE_USERNAME }}
SPRING_DATASOURCE_PASSWORD=${{ secrets.SPRING_DATASOURCE_PASSWORD }}
DOCKERHUB_USERNAME=${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_REPOSITORY=${{ secrets.DOCKERHUB_REPOSITORY }}
GITHUB_SHA=${{ github.sha }}
DOCKER_IMAGE=${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }}:${{ github.sha }}
JWT_SECRET_KEY=${{ secrets.JWT_SECRET_KEY }}
POSTGRES_DB=${{ secrets.POSTGRES_DB }}
JWT_EXPIRATION_ACCESS=${{ secrets.JWT_EXPIRATION_ACCESS }}
JWT_EXPIRATION_REFRESH=${{ secrets.JWT_EXPIRATION_REFRESH }}
OPENWEATHER_API_KEY=${{ secrets.WEATHER_SERVICE_KEY }}
FCM_SERVICE_ACCOUNT_FILE=${{ secrets.FCM_SERVICE_ACCOUNT_FILE }}
EOL
echo "Stopping spring-boot-app container..."
docker-compose --env-file .env stop app || true
echo "Removing spring-boot-app container..."
docker-compose --env-file .env rm -f app || true
echo "Recreating spring-boot-app service with docker-compose..."
docker-compose --env-file .env up -d --no-deps --build app
echo "Checking Docker containers..."
docker-compose ps
echo "Deployment completed successfully!"
dependency-submission:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Generate and submit dependency graph
uses: gradle/actions/dependency-submission@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0