diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 770d37a2d..a9e0f82e2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -8,21 +8,10 @@ on: jobs: build: - runs-on: ubuntu-latest - - # GITHUB_TOKEN 권한 명시 (PR decoration에 필요) - permissions: - contents: read - pull-requests: write - # actions: read # 필요하다면 추가 (워크플로우 자체의 액션 권한) - # security-events: write # Dependabot alerts 등 SonarCloud 결과 전송에 필요할 수 있음 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 # 깃허브 저장소 코드 체크아웃 - # PR인 경우, PR의 head commit을 가져오도록 fetch-depth를 0으로 설정 (모든 히스토리) - # 또는 PR의 대상 브랜치와 현재 브랜치를 모두 가져오도록 설정 (PR 분석에 중요) - with: - fetch-depth: 0 # Pull Request 분석을 위해 전체 히스토리 필요 - name: Set up JDK 17 uses: actions/setup-java@v4 @@ -34,8 +23,8 @@ jobs: - name: Grant execute permission for gradlew run: chmod +x gradlew - - name: Build and Test with Gradle # 'clean'으로 이전 빌드 잔여물 제거, 'build'로 컴파일 및 JUnit 테스트 실행 - run: ./gradlew clean build + - name: Build and Test with Gradle + run: ./gradlew clean build # 'clean'으로 이전 빌드 잔여물 제거, 'build'로 컴파일 및 JUnit 테스트 실행 - name: Upload Test Results uses: actions/upload-artifact@v4 @@ -45,21 +34,7 @@ jobs: path: build/test-results/test/*.xml # Gradle의 JUnit 테스트 결과 XML 파일 경로 - name: Analyze with SonarQube - # PR일 경우 SonarQube에 PR 관련 속성을 전달합니다. - # SonarCloud GitHub Action은 이 속성들을 자동으로 감지하려 하지만, 명시적으로 지정하면 더 확실합니다. - run: | - if [ "${{ github.event_name }}" == "pull_request" ]; then - ./gradlew sonarqube \ - -Dsonar.projectKey=${{ secrets.SONAR_PROJECT_KEY }} \ - -Dsonar.pullrequest.key=${{ github.event.pull_request.number }} \ - -Dsonar.pullrequest.branch=${{ github.head_ref }} \ - -Dsonar.pullrequest.base=${{ github.base_ref }} \ - -Dsonar.pullrequest.github.repository=${{ github.repository }} \ - -Dsonar.pullrequest.provider=GitHub - else - ./gradlew sonarqube \ - -Dsonar.projectKey=${{ secrets.SONAR_PROJECT_KEY }} - fi + run: ./gradlew sonarqube -Dsonar.projectKey=${{ secrets.SONAR_PROJECT_KEY }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # PR 정보 등을 가져오기 위해 필요 SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} # SonarQube 인증 토큰