Skip to content

fix: cd-develop.yml 수정 #28

fix: cd-develop.yml 수정

fix: cd-develop.yml 수정 #28

Workflow file for this run

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: |
default/.gradle/caches
default/.gradle/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
./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: |
chat/.gradle/caches
chat/.gradle/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
./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 }}
# key: ${{ secrets.PRIVATE_KEY }}
# port: ${{ secrets.PORT }}
# script: |
# cd /home/ubuntu/docker
# sudo docker-compose stop spring
# sudo docker-compose pull spring
# sudo docker-compose up -d spring
# sudo docker-compose stop spring_chat
# sudo docker-compose pull spring_chat
# sudo docker-compose up -d spring_chat