diff --git a/.github/workflows/pr_sync_ci.yaml b/.github/workflows/pr_sync_ci.yaml new file mode 100644 index 00000000..609d153e --- /dev/null +++ b/.github/workflows/pr_sync_ci.yaml @@ -0,0 +1,49 @@ +name: Spring Boot Gradle Test Workflow + +on: [ pull_request ] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Repository checkout + uses: actions/checkout@v2 + + - name: Setup MySQL + uses: mirromutth/mysql-action@v1.1 + with: + mysql database: ${{secrets.TEST_DATABASE}} + mysql user: ${{secrets.TEST_DB_USERNAME}} + mysql password: ${{secrets.TEST_DB_PASSWORD}} + # run 명령어로 schema 만드는 명령어 실행 + run: mysql -u ${{secrets.TEST_DB_USERNAME}} -p=${{secrets.TEST_DB_PASSWORD}} < ../.././mysql/schema.sql + + # java 설치 + - name: Set up JDK 17 + uses: actions/setup-java@v4.0.0 + with: + java-version: '17' + distribution: 'liberica' + + # 환경 변수 적용 + - name: Configure application.yaml under test directory + uses: microsoft/variable-substitution@v1 + with: + files: ./src/main/resources/application.yaml + env: + spring.datasource.url: jdbc:mysql://localhost:3306/${{ secrets.TEST_DATABASE }} + spring.datasource.username: ${{ secrets.TEST_DB_USERNAME }} + spring.datasource.password: ${{ secrets.TEST_DB_PASSWORD }} + + # gradle 권한 추가 + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + # 프로젝트 빌드 + - name: Build with Gradle + run: ./gradlew clean build + + # 테스트 실행 + - name: Run Tests + run: ./gradlew test