Skip to content

test: 깃액션 테스트 #15

test: 깃액션 테스트

test: 깃액션 테스트 #15

Workflow file for this run

name: CI/CD Pipeline (planova-server)
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Java 17
uses: actions/setup-java@v4
with:
java-version: "17"
distribution: "temurin"
- name: gradlew mod modify
run: chmod +x gradlew
- name: Cache Gradle packages
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Spring Boot Build
run: ./gradlew clean build --exclude-task test
- name: docker image build
run: docker build -t ${{ secrets.DOCKER_USERNAME }}/planova-server .
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: docker Hub push
run: docker push ${{ secrets.DOCKER_USERNAME }}/planova-server
- name: Deploy to Remote Server
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.REMOTE_HOST }}
username: ${{ secrets.REMOTE_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
port: ${{ secrets.REMOTE_PORT }}
script: |
cd ${{ secrets.REMOTE_PROJECT_PATH }}
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
docker compose down --rmi all
docker rmi ${{ secrets.DOCKER_USERNAME }}/planova-server
docker pull ${{ secrets.DOCKER_USERNAME }}/planova-server
docker compose up -d --remove-orphans
- name: Send success message
if: success()
run: echo "🎉 CI/CD Pipeline completed successfully!"