Skip to content

Create README.md

Create README.md #8

Workflow file for this run

name: Server CI/CD
on:
push:
branches:
- main
jobs:
job:
name: 서버 재배포
runs-on: ubuntu-latest
environment: dev
steps:
- name: 체크 아웃
uses: actions/checkout@v3
- name: JDK 17 설치
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: application.yml 정보 넣기
run: |
mkdir -p src/main/resources
echo "${{ secrets.APPLICATION_YML }}" | base64 --decode > src/main/resources/application.yml
cat src/main/resources/application.yml
- name: 구글 키 정보 넣기
run: |
echo "${{ secrets.GOOGLE_KEY_JSON }}" | base64 --decode > src/main/resources/service-account-key.json
cat src/main/resources/service-account-key.json
- name: Gradle Caching
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ubuntu-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
ubuntu-gradle-
- name: Grant Permission Gradlew
run: chmod +x ./gradlew
- name: build 실행 (클린 빌드, 테스트 제외)
run: ./gradlew clean build -x test
- name: 실행 jar 파일 복사
run: cp build/libs/server-0.0.1-SNAPSHOT.jar ./
- name: 기존 서버 내 jar 파일 삭제
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.AWS_SSH_HOST }}
username: ${{ secrets.AWS_SSH_USERNAME }}
key: ${{ secrets.AWS_SSH_KEY }}
port: ${{ secrets.AWS_SSH_PORT }}
script: |
rm -f ~/docker/server/server-0.0.1-SNAPSHOT.jar
- name: jar 파일 운영 서버 전송
uses: appleboy/scp-action@master
with:
host: ${{ secrets.AWS_SSH_HOST }}
username: ${{ secrets.AWS_SSH_USERNAME }}
key: ${{ secrets.AWS_SSH_KEY }}
port: ${{ secrets.AWS_SSH_PORT }}
source: "server-0.0.1-SNAPSHOT.jar"
target: "~/docker/server"
- name: 이미지 새로 build 및 docker 서버 재실행
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.AWS_SSH_HOST }}
username: ${{ secrets.AWS_SSH_USERNAME }}
key: ${{ secrets.AWS_SSH_KEY }}
port: ${{ secrets.AWS_SSH_PORT }}
script: |
cd ~/docker
docker-compose up --build -d server