feat: Azure Blob Storage 에 이미지 업로드/삭제 기능 #9
Workflow file for this run
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: PR Build Validation | |
| on: | |
| pull_request: | |
| branches: | |
| - develop | |
| types: | |
| - opened | |
| - synchronize | |
| - reopened | |
| - ready_for_review | |
| jobs: | |
| changes: | |
| name: Detect Changed Areas | |
| runs-on: ubuntu-latest | |
| outputs: | |
| client: ${{ steps.filter.outputs.client }} | |
| server: ${{ steps.filter.outputs.server }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Detect changed paths | |
| id: filter | |
| uses: dorny/paths-filter@v3 | |
| with: | |
| filters: | | |
| client: | |
| - 'client/**' | |
| server: | |
| - 'server/**' | |
| client-build: | |
| name: Client Build | |
| needs: changes | |
| if: ${{ needs.changes.outputs.client == 'true' }} | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: client | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: npm | |
| cache-dependency-path: client/package-lock.json | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Build client | |
| run: npm run build | |
| server-build: | |
| name: Server Build | |
| needs: changes | |
| if: ${{ needs.changes.outputs.server == 'true' }} | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: server | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: 17 | |
| cache: gradle | |
| - name: Build server | |
| run: ./gradlew bootJar -x test | |
| pr-build-check: | |
| name: PR Build Check | |
| needs: | |
| - changes | |
| - client-build | |
| - server-build | |
| if: ${{ always() }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Evaluate build results | |
| shell: bash | |
| run: | | |
| client_changed="${{ needs.changes.outputs.client }}" | |
| server_changed="${{ needs.changes.outputs.server }}" | |
| client_result="${{ needs['client-build'].result }}" | |
| server_result="${{ needs['server-build'].result }}" | |
| echo "client changed: ${client_changed}" | |
| echo "server changed: ${server_changed}" | |
| echo "client build result: ${client_result}" | |
| echo "server build result: ${server_result}" | |
| if [[ "${client_changed}" == "true" && "${client_result}" != "success" ]]; then | |
| echo "Client build was required but did not succeed." | |
| exit 1 | |
| fi | |
| if [[ "${server_changed}" == "true" && "${server_result}" != "success" ]]; then | |
| echo "Server build was required but did not succeed." | |
| exit 1 | |
| fi | |
| echo "All required PR builds passed." |