Skip to content

[#36] Feat: 북마크 상세정보 조회 #40

[#36] Feat: 북마크 상세정보 조회

[#36] Feat: 북마크 상세정보 조회 #40

Workflow file for this run

name: Java CI/CD with Gradle and DockerHub
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Grant permission to gradlew
run: chmod +x ./gradlew
- name: Setup Gradle with caching
uses: gradle/actions/setup-gradle@v4
- name: Copy application.properties from GitHub Secrets
run: |
mkdir -p ./src/main/resources
echo "${{ secrets.APPLICATION_PROPERTIES }}" > ./src/main/resources/application.properties
- name: Run Tests
run: ./gradlew test
build-and-deploy:
runs-on: ubuntu-latest
needs: test
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Grant permission to gradlew
run: chmod +x ./gradlew
- name: Setup Gradle with caching
uses: gradle/actions/setup-gradle@v4
- name: Copy application.properties from GitHub Secrets
run: |
mkdir -p ./src/main/resources
echo "${{ secrets.APPLICATION_PROPERTIES }}" > ./src/main/resources/application.properties
- name: Build Project with Gradle
run: ./gradlew clean build
- name: Build Docker image
run: docker build -t ${{ secrets.DOCKER_HUB_USERNAME }}/myapp:latest .
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Push Docker image to Docker Hub
run: docker push ${{ secrets.DOCKER_HUB_USERNAME }}/myapp:latest
- name: Deploy on EC2
env:
PRIVATE_KEY: ${{ secrets.EC2_SSH_KEY }}
HOST: ${{ secrets.EC2_HOST }}
USER: ${{ secrets.EC2_USER }}
DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
run: |
echo "$PRIVATE_KEY" > private_key.pem
chmod 600 private_key.pem
ssh -i private_key.pem -o StrictHostKeyChecking=no $USER@$HOST << EOF
# 로그로 사용자 이름 출력
echo "Docker Hub username: $DOCKER_HUB_USERNAME"
# Docker 이미지 풀
docker pull "$DOCKER_HUB_USERNAME/myapp:latest"
# 기존 컨테이너 종료 및 삭제
docker stop myapp || true
docker rm myapp || true
# 새로운 컨테이너 실행
docker run -d --name myapp -p 8080:8080 "$DOCKER_HUB_USERNAME/myapp:latest"
EOF