fix: 로그아웃 시, SSE 연결해제 수정 #41
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: Java CI with Gradle | |
on: | |
push: | |
branches: | |
- develop | |
workflow_dispatch: | |
permissions: | |
contents: read | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code (코드 체크아웃) | |
uses: actions/checkout@v2 | |
- name: Set up JDK 17 (JDK 17 설정) | |
uses: actions/setup-java@v2 | |
with: | |
distribution: 'temurin' | |
java-version: '17' | |
# CR_PAT: Container Registry - Personal Access Token | |
- name: GitHub Container Registry login (GitHub Container Registry 로그인) | |
run: | | |
export CR_PAT=${{ secrets.SOUNDLINK_TOKEN }} | |
echo $CR_PAT | docker login ghcr.io -u ${{ secrets.GIT_ID }} --password-stdin | |
- name: Grant execute permission to Gradle (Gradle 실행 권한 부여) | |
run: | | |
chmod +x ./default/gradlew | |
chmod +x ./chat/gradlew | |
- name: Cache Gradle - Default (Gradle 캐시 - 디폴트) | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.gradle/default/caches | |
~/.gradle/default/wrapper | |
key: gradle-default-${{ runner.os }}-${{ hashFiles('default/**/gradle-wrapper.properties') }} | |
restore-keys: gradle-default-${{ runner.os }}- | |
- name: Create application.properties from git secret (application.properties 파일 생성) | |
run: | | |
mkdir -p default/src/main/resources | |
mkdir -p chat/src/main/resources | |
echo "$APPLICATION_DEFAULT" > default/src/main/resources/application.properties | |
echo "$APPLICATION_CHAT" > chat/src/main/resources/application.properties | |
env: | |
APPLICATION_DEFAULT: ${{ secrets.APPLICATION_DEFAULT }} | |
APPLICATION_CHAT: ${{ secrets.APPLICATION_CHAT }} | |
# - name: Detect Changes (변경된 파일 감지) | |
# id: changed-files | |
# run: | | |
# git fetch origin develop --depth=1 | |
# CHANGED_FILES=$(git diff --name-only origin/develop HEAD) | |
# | |
# echo "Changed files: $CHANGED_FILES" | |
# | |
# if echo "$CHANGED_FILES" | grep -q '^default/'; then | |
# echo "DEFAULT_CHANGED=true" >> $GITHUB_ENV | |
# fi | |
# | |
# if echo "$CHANGED_FILES" | grep -q '^chat/'; then | |
# echo "CHAT_CHANGED=true" >> $GITHUB_ENV | |
# fi | |
- name: Build JAR - Default (JAR 빌드 - 디폴트) | |
run: | | |
cd default | |
GRADLE_USER_HOME=$HOME/.gradle/default ./gradlew bootJar | |
- name: Docker build & push (Default) | |
run: | | |
echo "Current directory: $(pwd)" | |
TAG=$(git rev-parse --short HEAD) | |
DOCKER_IMAGE_DEFAULT=ghcr.io/${{ secrets.GIT_ID }}/soundlink_default:$TAG | |
DOCKER_IMAGE_DEFAULT_LATEST=ghcr.io/${{ secrets.GIT_ID }}/soundlink_default:latest | |
docker build -t soundlink_default -f ./docker/default.Dockerfile . | |
docker tag soundlink_default $DOCKER_IMAGE_DEFAULT | |
docker tag soundlink_default $DOCKER_IMAGE_DEFAULT_LATEST | |
docker push $DOCKER_IMAGE_DEFAULT | |
docker push $DOCKER_IMAGE_DEFAULT_LATEST | |
- name: Cache Gradle - Chat (Gradle 캐시 - 채팅) | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.gradle/chat/caches | |
~/.gradle/chat/wrapper | |
key: gradle-chat-${{ runner.os }}-${{ hashFiles('chat/**/gradle-wrapper.properties') }} | |
restore-keys: gradle-chat-${{ runner.os }}- | |
- name: Build JAR - Chat (JAR 빌드 - 채팅) | |
run: | | |
cd chat | |
GRADLE_USER_HOME=$HOME/.gradle/chat ./gradlew bootJar | |
- name: Docker build & push (Chat) | |
run: | | |
echo "Current directory: $(pwd)" | |
TAG=$(git rev-parse --short HEAD) | |
DOCKER_IMAGE_CHAT=ghcr.io/${{ secrets.GIT_ID }}/soundlink_chat:$TAG | |
DOCKER_IMAGE_CHAT_LATEST=ghcr.io/${{ secrets.GIT_ID }}/soundlink_chat:latest | |
docker build -t soundlink_chat -f ./docker/chat.Dockerfile . | |
docker tag soundlink_chat $DOCKER_IMAGE_CHAT | |
docker tag soundlink_chat $DOCKER_IMAGE_CHAT_LATEST | |
docker push $DOCKER_IMAGE_CHAT | |
docker push $DOCKER_IMAGE_CHAT_LATEST | |
- name: Deploy to Linux Server (리눅스 서버 배포) | |
uses: appleboy/[email protected] | |
with: | |
host: ${{ secrets.HOST }} | |
username: ${{ secrets.USERNAME }} | |
password: ${{ secrets.PASSWORD }} | |
port: ${{ secrets.PORT }} | |
script: | | |
cd /home/${{ secrets.USERNAME }}/docker | |
docker-compose stop spring | |
docker-compose pull spring | |
docker-compose up -d spring | |
docker-compose stop spring_chat | |
docker-compose pull spring_chat | |
docker-compose up -d spring_chat |