Skip to content

Merge pull request #102 from SWYP-9th-Team5/101/Hotfix #63

Merge pull request #102 from SWYP-9th-Team5/101/Hotfix

Merge pull request #102 from SWYP-9th-Team5/101/Hotfix #63

Workflow file for this run

name: CD (docker -> EC2)
on:
push:
branches: [ "develop", "main" ]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check out the repository
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
distribution: 'temurin'
java-version: '17'
- name: Grant execute permission for gradlew
run: chmod +x ./gradlew
# Gradle 셋팅
- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0
# 빌드
- name: Build with Gradle Wrapper
run: ./gradlew clean build -x test
# 도커 로그인
- name: docker login
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build the Docker image
run: docker build . -t ${{ secrets.DOCKERHUB_USERNAME }}/greening
- name: Push Docker image to Docker Hub
run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/greening
deploy:
needs: build
runs-on: ubuntu-latest
steps:
- name: Deploy to AWS via SSH
uses: appleboy/ssh-action@v0.1.10
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_SSH_KEY }}
script: |
sudo docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p${{ secrets.DOCKERHUB_TOKEN }}
sudo docker stop greening-server || true
sudo docker container prune -f
sudo docker rmi ${{ secrets.DOCKERHUB_USERNAME }}/greening:latest
sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/greening
sudo docker run -d --log-driver=syslog \
-e TZ=Asia/Seoul \
-p 8080:8080 --name greening-server \
-e "REDIS_SERVER=${{ secrets.REDIS_SERVER }}" \
-e "DB_URL=${{ secrets.DB_URL }}" \
-e "DB_USERNAME=${{ secrets.DB_USERNAME }}" \
-e "DB_PASSWORD=${{ secrets.DB_PASSWORD }}" \
-e "JWT_SECRET=${{ secrets.JWT_SECRET }}" \
-e "KAKAO_CLIENT_ID=${{ secrets.KAKAO_CLIENT_ID }}" \
-e "GOOGLE_CLIENT_ID=${{ secrets.GOOGLE_CLIENT_ID }}" \
-e "GOOGLE_CLIENT_SECRET=${{ secrets.GOOGLE_CLIENT_SECRET }}" \
-e "S3_REGION=${{ secrets.S3_REGION }}" \
-e "S3_BUCKET=${{ secrets.S3_BUCKET }}" \
-e "S3_STORAGE_ACCESS_KEY=${{ secrets.S3_STORAGE_ACCESS_KEY }}" \
-e "S3_STORAGE_SECRET_KEY=${{ secrets.S3_STORAGE_SECRET_KEY }}" \
-e "S3_BASE_URL=${{ secrets.S3_BASE_URL }}" \
${{ secrets.DOCKERHUB_USERNAME }}/greening