Skip to content

지도 클러스터/마커형 조회 기능 Geohash 기반 요청 구조 리팩토링 및 Redis 캐싱 적용 #89

지도 클러스터/마커형 조회 기능 Geohash 기반 요청 구조 리팩토링 및 Redis 캐싱 적용

지도 클러스터/마커형 조회 기능 Geohash 기반 요청 구조 리팩토링 및 Redis 캐싱 적용 #89

Workflow file for this run

name: dev-build
on:
pull_request:
branches:
- develop # develop pr
types: [ opened, synchronize, reopened ]
workflow_dispatch:
jobs:
build:
name: Build and analyze
environment: develop-test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: 21
distribution: 'zulu' # Alternative distribution options are available
- name: Cache Gradle packages
uses: actions/cache@v4
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle
- name: Cache SonarCloud packages
uses: actions/cache@v4
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- name: S3에서 init.sql 다운로드
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: ${{ secrets.AWS_REGION }}
run: |
mkdir -p docker
aws s3 cp s3://devcos4-team08-bucket/db/init.sql ./docker/init.sql
- name: Docker Compose 설치
run: |
sudo curl -L "https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
- name: Docker Compose 실행
run: |
chmod -R 755 ./docker
docker-compose -f docker-compose.yml up -d
- name: 컨테이너 실행 대기
run: |
echo "Waiting for MySQL to be ready..."
for i in {1..10}; do
if docker-compose exec mysql mysqladmin ping -h "127.0.0.1" --silent; then
echo "MySQL is ready!"
break
fi
sleep 1
done
if ! docker-compose exec mysql mysqladmin ping -h "127.0.0.1" --silent; then
echo "MySQL did not start in time!"
exit 1
fi
echo "Waiting for PostgreSQL to be ready..."
for i in {1..10}; do
if docker-compose exec -T postgres pg_isready -d gis_db -U postgres; then
echo "PostgreSQL is ready!"
break
fi
sleep 2
done
if ! docker-compose exec -T postgres pg_isready -d gis_db -U postgres; then
echo "PostgreSQL did not start in time!"
docker-compose logs postgres
exit 1
fi
- name: Test and analyze
env:
#GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
DB_URL: ${{ secrets.DB_URL }}
DB_USERNAME: ${{ secrets.DB_USERNAME }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
NAVER_DEV_CLIENT_ID: ${{ secrets.NAVER_DEV_CLIENT_ID }}
NAVER_DEV_CLIENT_SECRET: ${{ secrets.NAVER_DEV_CLIENT_SECRET }}
NAVER_DEV_REDIRECT_URI: ${{ secrets.NAVER_DEV_REDIRECT_URI }}
GOOGLE_DEV_CLIENT_ID: ${{ secrets.GOOGLE_DEV_CLIENT_ID }}
GOOGLE_DEV_CLIENT_SECRET: ${{ secrets.GOOGLE_DEV_CLIENT_SECRET }}r
GOOGLE_DEV_REDIRECT_URI: ${{ secrets.GOOGLE_DEV_REDIRECT_URI }}
KAKAO_DEV_CLIENT_ID: ${{ secrets.KAKAO_DEV_CLIENT_ID }}
KAKAO_DEV_CLIENT_SECRET: ${{ secrets.KAKAO_DEV_CLIENT_SECRET }}
KAKAO_DEV_REDIRECT_URI: ${{ secrets.KAKAO_DEV_REDIRECT_URI }}
JWT_SECRET: ${{ secrets.JWT_SECRET }}
JWT_ACCESS_TOKEN_EXPIRE_TIME_SECONDS: ${{ secrets.JWT_ACCESS_TOKEN_EXPIRE_TIME_SECONDS }}
JWT_REFRESH_TOKEN_EXPIRE_TIME_SECONDS: ${{ secrets.JWT_ACCESS_TOKEN_EXPIRE_TIME_SECONDS }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: ${{ secrets.AWS_REGION }}
S3_BUCKET_NAME: ${{ secrets.S3_BUCKET_NAME }}
# dev 프로필 사용
run: |
chmod +x ./gradlew
# 소나클라우드 임시 비활성화 ./gradlew build jacocoTestReport sonar --info -Pprofile=dev -Dsonar.branch.name=${{ github.ref_name }}
./gradlew build -i jacocoTestReport -Pprofile=dev
- name: Docker Compose 종료
run: docker-compose -f docker-compose.yml down
- name: Upload Test Report
uses: actions/upload-artifact@v4
with:
name: problems-report
path: build/reports/problems/problems-report.html