Skip to content

feat: 상품 삭제 #121

feat: 상품 삭제

feat: 상품 삭제 #121

Workflow file for this run

name: DecodEat CI/CD with Gradle, Test, and Docker
on:
workflow_dispatch:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
permissions:
contents: read
jobs:
CI-CD:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
# 1. 코드 체크아웃
- uses: actions/checkout@v4
# 2. JDK 17 설정
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
# 3. Gradle 캐시
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
# 4. application.yml 생성 (base64 안전 처리)
- name: Make application.yml from Secret
run: |
mkdir -p ./src/main/resources
echo "${{ secrets.APPLICATION_DEV_YML_BASE64 }}" | base64 --decode > ./src/main/resources/application.yml
echo "=== [DEBUG] application.yml ==="
cat ./src/main/resources/application.yml
# 5. gradlew 실행 권한 부여
- name: Grant Execute Permission For Gradlew
run: chmod +x gradlew
# Gradle 빌드
- name: Build Gradle (without test)
run: ./gradlew bootJar -x test
# 7. Docker 빌드 및 푸시
- name: Docker Build & Push
run: |
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
docker build -t ${{ secrets.DOCKER_USERNAME }}/decodeat-backend:latest .
docker push ${{ secrets.DOCKER_USERNAME }}/decodeat-backend:latest
# 8. Docker 배포
- name: Deploy to Dev
uses: appleboy/ssh-action@master
if: contains(github.ref,'main')
with:
key: ${{ secrets.PRIVATE_KEY }}
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
port: 22
script: |
cd ~/app
docker rm -f decodeat || true
docker pull ${{ secrets.DOCKER_USERNAME }}/decodeat-backend:latest
docker-compose -f docker-compose.yml up -d --remove-orphans
docker image prune -f
# 9. 현재 시간 출력
current-time:
needs: CI-CD
runs-on: ubuntu-latest
steps:
- name: Get Current Time
uses: 1466587594/get-current-time@v2
id: current-time
with:
format: YYYY-MM-DDTHH:mm:ss
utcOffset: "+09:00"
- name: Print Current Time
run: echo "Current Time=${{steps.current-time.outputs.formattedTime}}"