Skip to content

[BE] fix: json 파싱 이슈 해결 (#24) #12

[BE] fix: json 파싱 이슈 해결 (#24)

[BE] fix: json 파싱 이슈 해결 (#24) #12

Workflow file for this run

name: ECR actions for multiple folders
on:
push:
branches:
- be/setting/24-ecr
env:
NAMESPACE_MSA: "msa"
NAMESPACE_SERVICE: "service"
jobs:
# 변경 사항 감지 Job
check-folder-change:
runs-on: ubuntu-latest
outputs:
changed_services: ${{ steps.check_changes.outputs.changed_services }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Check for changes in folders
id: check_changes
run: |
JSON_OUTPUT="{"
for service in discovery-server config-server apigateway-server user-server chat-server state-server guild-server notification-server signaling-server; do
if git rev-parse --verify origin/be/setting/24-test >/dev/null 2>&1; then
if git diff --name-only origin/be/setting/24-test...HEAD | grep -q "^src/backend/$service/"; then
JSON_OUTPUT+="\"$service\":\"true\","
else
JSON_OUTPUT+="\"$service\":\"false\","
fi
else
JSON_OUTPUT+="\"$service\":\"true\","
fi
done
JSON_OUTPUT="${JSON_OUTPUT%,}}"
echo "changed_services=$JSON_OUTPUT" >> "$GITHUB_OUTPUT"
# 공통 빌드 Job (MSA + Service 통합)
build-and-push:
needs: check-folder-change
runs-on: ubuntu-latest
strategy:
matrix:
include:
- name: "discovery-server"
namespace: "msa"
ecr_repo: "discovery"
- name: "config-server"
namespace: "msa"
ecr_repo: "config"
- name: "apigateway-server"
namespace: "msa"
ecr_repo: "apigateway"
- name: "user-server"
namespace: "service"
ecr_repo: "user"
- name: "chat-server"
namespace: "service"
ecr_repo: "chat"
- name: "state-server"
namespace: "service"
ecr_repo: "state"
- name: "guild-server"
namespace: "service"
ecr_repo: "guild"
- name: "notification-server"
namespace: "service"
ecr_repo: "notification"
- name: "signaling-server"
namespace: "service"
ecr_repo: "media"
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Check if the service has changed
id: check_service_change
run: |
CHANGED_SERVICES='${{ needs.check-folder-change.outputs.changed_services }}'
SERVICE_NAME='${{ matrix.name }}'
SERVICE_CHANGED=$(echo "$CHANGED_SERVICES" | jq -r '."'"$SERVICE_NAME"'"')
if [[ "$SERVICE_CHANGED" != "true" ]]; then
echo "No changes detected for $SERVICE_NAME, skipping job."
exit 1
fi
- name: Build & Push ${{ matrix.name }}
uses: ./.github/actions/ecr-push
with:
namespace: ${{ matrix.namespace }}
folder: "src/backend/${{ matrix.name }}"
ecr_repo: ${{ matrix.ecr_repo }}
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}