fix: cd-develop.yml 수정 #28
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: | | |
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 |