지도 범위 내 클러스터형 공개 다이어리 조회 API 구현 (줌레벨 기준 시/도, 시군구 클러스터) #38
This file contains hidden or 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-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: MySQL 컨테이너 실행 | |
| run: | | |
| docker run --name log4u-mysql \ | |
| -e MYSQL_ROOT_PASSWORD=root \ | |
| -e MYSQL_DATABASE=log4u \ | |
| -e MYSQL_USER=${{ secrets.DB_USERNAME }} \ | |
| -e MYSQL_PASSWORD=${{ secrets.DB_PASSWORD}} \ | |
| -d \ | |
| -p 3307:3306 \ | |
| mysql:8.0.33 | |
| - name: Wait for MySQL to be ready | |
| run: | | |
| for i in {1..10}; do | |
| if docker exec log4u-mysql mysqladmin ping -h "127.0.0.1" --silent; then | |
| echo "MySQL is ready!" | |
| break | |
| fi | |
| echo "Waiting for MySQL to start..." | |
| sleep 1 | |
| done | |
| if ! docker exec log4u-mysql mysqladmin ping -h "127.0.0.1" --silent; then | |
| echo "MySQL did not start in time!" | |
| 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 }} | |
| # 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 MySQL 종료 및 제거 | |
| run: | | |
| docker stop log4u-mysql | |
| docker rm log4u-mysql | |
| - name: Upload Test Report | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: problems-report | |
| path: build/reports/problems/problems-report.html |