Skip to content

🔧 added auction participant list #469

🔧 added auction participant list

🔧 added auction participant list #469

Workflow file for this run

# github repository actions 페이지에 나타날 이름
name: CI/CD Pipeline
# event trigger
# main이나 develop 브랜치에 push가 되었을 때 실행
on:
push:
branches:
- "main"
- "feat/*"
pull_request:
branches:
- "main"
- "feat/*"
permissions:
contents: read
jobs:
CI:
runs-on: ubuntu-latest
steps:
# JDK setting - github actions에서 사용할 JDK 설정 (프로젝트나 AWS의 java 버전과 달라도 무방)
- uses: actions/checkout@v4
- name: Set up JDK 17 and Eclipse Temurin
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
# gradlew에 실행 권한 부여
- name: Grant execute permission for gradlew
run: chmod +x gradlew
# 린트 체크 실행
- name: Lint Check
run: ./gradlew ktlintCheck
# AccessToken 발급시
- name: Checkout repository
uses: actions/checkout@v3
- name: Build and run application
env:
JWT_SECRET_KEY: ${{ secrets.JWT_SECRET_KEY }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
AWS_REGION: ${{ secrets.AWS_REGION }}
GOOGLE_CLI_ID: ${{ secrets.GOOGLE_CLI_ID }}
GOOGLE_CLI_SECRET: ${{ secrets.GOOGLE_CLI_SECRET }}
NAVER_CLI_ID: ${{ secrets.NAVER_CLI_ID }}
NAVER_CLI_SECRET: ${{ secrets.NAVER_CLI_SECRET }}
KAKAO_CLI_ID: ${{ secrets.KAKAO_CLI_ID }}
KAKAO_CLI_SECRET: ${{ secrets.KAKAO_CLI_SECRET }}
run: |
./gradlew build
./gradlew test
# Docker 로그인
- name: Docker login
if: contains(github.ref, 'main')
run: |
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
# Docker 이미지 빌드 및 푸시
- name: Docker build & push
if: contains(github.ref, 'main')
run: |
docker build -f ./Dockerfile -t ${{ secrets.DOCKER_USERNAME }}/karrot .
docker push ${{ secrets.DOCKER_USERNAME }}/karrot
CD:
runs-on: ubuntu-latest
needs: CI
if: contains(github.ref, 'main')
steps:
# 다시 checkout
- name: Checkout again
uses: actions/checkout@v3
# EC2에 배포
- name: Deploy to prod
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST_PROD }} # EC2 퍼블릭 IPv4 DNS
username: ubuntu
key: ${{ secrets.PRIVATE_KEY }}
envs: GITHUB_SHA
script: |
sudo docker ps
sudo docker stop $(sudo docker ps -q)
sudo docker rm $(sudo docker ps -aq)
sudo docker pull ${{ secrets.DOCKER_USERNAME }}/karrot
sudo docker run -d -p 8080:8080 \
--memory="768m" --cpus="0.8" \
-e JWT_SECRET_KEY=${{ secrets.JWT_SECRET_KEY }} \
-e AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }} \
-e AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }} \
-e AWS_S3_BUCKET=${{ secrets.AWS_S3_BUCKET }} \
-e AWS_REGION=${{ secrets.AWS_REGION }} \
-e GOOGLE_CLI_ID=${{ secrets.GOOGLE_CLI_ID }} \
-e GOOGLE_CLI_SECRET=${{ secrets.GOOGLE_CLI_SECRET }} \
-e NAVER_CLI_ID=${{ secrets.NAVER_CLI_ID }} \
-e NAVER_CLI_SECRET=${{ secrets.NAVER_CLI_SECRET }} \
-e KAKAO_CLI_ID=${{ secrets.KAKAO_CLI_ID }} \
-e KAKAO_CLI_SECRET=${{ secrets.KAKAO_CLI_SECRET }} \
${{ secrets.DOCKER_USERNAME }}/karrot
sudo docker system prune -a -f --volumes