♻️ refactor : 공고 필터 지역 관련 내용 수정 #103
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: 핀하우스 테스트 CI 파이프라인 | |
| ### develop으로 PR 올릴 때, 테스트 코드를 실행하여, 빌드 여부 및 테스트를 체크하는 로직을 수행한다. | |
| on: | |
| pull_request: | |
| branches: [ "develop"] | |
| jobs: | |
| #1. 통합 테스트 용 | |
| test: | |
| runs-on: ubuntu-22.04 | |
| services: | |
| mysql: | |
| image: mysql:8.0 | |
| ports: | |
| - '3306:3306' | |
| env: | |
| MYSQL_DATABASE: pinhouse_test | |
| MYSQL_USER: testuser | |
| MYSQL_PASSWORD: testpass | |
| MYSQL_ROOT_PASSWORD: root | |
| redis: | |
| image: redis:7.2.5 | |
| ports: | |
| - '6379:6379' | |
| mongo: | |
| image: mongo:6.0 | |
| ports: | |
| - 27017:27017 | |
| permissions: | |
| contents: write | |
| checks: write | |
| pull-requests: write | |
| steps: | |
| # 1-1. repository checkout | |
| - uses: actions/checkout@v4 | |
| # 1-2. jdk 환경 설치 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '17' | |
| distribution: 'temurin' | |
| # 1-3. '*.yml' 파일 세팅 | |
| - name: application.yml 파일 설정 | |
| run: | | |
| mkdir -p src/main/resources | |
| echo "${{ secrets.APPLICATION_YML }}" > ./src/main/resources/application.yml | |
| - name: application-dev.yml 설정 | |
| run: echo "${{ secrets.APPLICATION_DEV_YML }}" > ./src/main/resources/application-dev.yml | |
| - name: application-oauth2.yml 설정 | |
| run: echo "${{ secrets.APPLICATION_OAUTH2_YML }}" > ./src/main/resources/application-oauth2.yml | |
| - name: application-test.yml 설정 | |
| run: | | |
| mkdir -p src/test/resources | |
| echo "${{ secrets.APPLICATION_TEST_YML }}" > ./src/test/resources/application-test.yml | |
| # 1-4. 성능 향상을 위한 Gradle 캐싱 | |
| - name: Gradle Caching | |
| uses: actions/cache@v3 | |
| with: | |
| path: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
| restore-keys: | | |
| gradle-${{ runner.os }} | |
| # 1-5. 테스트 컨테이너들 작동여부 체크 | |
| - name: MySQL 체크 | |
| run: | | |
| until nc -z localhost 3306; do | |
| echo "Waiting for MySQL..." | |
| sleep 3 | |
| done | |
| - name: Redis 체크 | |
| run: | | |
| until nc -z localhost 6379; do | |
| echo "Waiting for Redis..." | |
| sleep 3 | |
| done | |
| - name: MongoDB 체크 | |
| run: | | |
| until nc -z localhost 27017; do | |
| echo "Waiting for MongoDB..." | |
| sleep 3 | |
| done | |
| # 2. 빌드 | |
| - name: Build with Gradle Wrapper | |
| run: ./gradlew clean build | |
| # 3. JUnit 테스트 결과 게시 | |
| - name: Test 결과 출력 | |
| uses: EnricoMi/publish-unit-test-result-action@v2 | |
| if: always() | |
| with: | |
| junit_files: '**/build/test-results/test/TEST-*.xml' | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |