Skip to content

🔀 회독조회API 추가 feature/#77 Merge #253

🔀 회독조회API 추가 feature/#77 Merge

🔀 회독조회API 추가 feature/#77 Merge #253

Workflow file for this run

name: Deploy to RaspberryPi Server
on:
push:
branches: [ main ]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
#JDK 셋팅
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
java-version: '17'
distribution: 'adopt'
# application.properties 생성
- name: Generate application.properties
run: |
envsubst < ./src/main/resources/application.properties.templates > ./src/main/resources/application.properties
env:
MYSQL_URL: ${{ secrets.MYSQL_URL }}
MYSQL_USER: ${{ secrets.MYSQL_USER }}
MYSQL_ROOT_PASSWORD: ${{ secrets.MYSQL_ROOT_PASSWORD }}
JWT_SECRET: ${{ secrets.JWT_SECRET }}
DOMAIN_NAME: ${{ secrets.DOMAIN_NAME }}
KAKAO_CLIENT: ${{ secrets.KAKAO_CLIENT }}
KAKAO_SECRET: ${{ secrets.KAKAO_SECRET }}
ALADIN_TTB_KEY: ${{ secrets.ALADIN_TTB_KEY }}
ALADIN_SERVER_URL: ${{ secrets.ALADIN_SERVER_URL }}
REDIS_PREFIX: ${{secrets.REDIS_PREFIX}}
REDIS_PORT: ${{secrets.REDIS_PORT}}
REDIS_TERMS_KEY: ${{secrets.REDIS_TERMS_KEY}}
#프로젝트 빌드
- name: Build with Gradle
run: |
chmod +x ./gradlew
./gradlew build -x test
#도커허브 로그인
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
#도커이미지 빌드&푸쉬
- name: Build and push Docker image
uses: docker/build-push-action@v2
with:
context: .
push : true
tags: ${{ secrets.DOCKERHUB_USERNAME }}/bbegok:latest
#env 셋팅
- name: Create .env file
run: |
envsubst < ./configuration/.env.template > ./configuration/.env
env:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
MYSQL_URL: ${{ secrets.MYSQL_URL }}
MYSQL_USER: ${{ secrets.MYSQL_USER }}
MYSQL_PASSWORD: ${{ secrets.MYSQL_PASSWORD }}
MYSQL_ROOT_PASSWORD: ${{ secrets.MYSQL_ROOT_PASSWORD }}
DOMAIN_NAME: ${{ secrets.DOMAIN_NAME }}
SSL_CERT_PATH: ${{ secrets.SSL_CERT_PATH }}
SSL_CERTIFICATE: ${{ secrets.SSL_CERTIFICATE }}
SSL_CERTIFICATE_KEY: ${{ secrets.SSL_CERTIFICATE_KEY }}
#nginx.config 셋팅
- name: Create nginx.conf from template
run: |
envsubst '${DOMAIN_NAME} ${SSL_CERTIFICATE} ${SSL_CERTIFICATE_KEY}' < ./configuration/nginx.conf.template > ./configuration/nginx.conf
env:
DOMAIN_NAME: ${{ secrets.DOMAIN_NAME }}
SSL_CERTIFICATE: ${{ secrets.SSL_CERTIFICATE }}
SSL_CERTIFICATE_KEY: ${{ secrets.SSL_CERTIFICATE_KEY }}
#configuration/이하의 파일을 서버로 복사
- name: Copy files to Raspberry Pi
uses: appleboy/scp-action@master
with:
host: ${{ secrets.PI_HOST }}
port: ${{ secrets.PI_PORT }}
username: ${{ secrets.PI_USERNAME }}
password: ${{ secrets.PI_PASSWORD }}
source: "./configuration/*"
target: "Project/bbegok/"
strip_components: 1
#라즈베리파이 서버에 배포
- name: Deploy to Raspberry Pi
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.PI_HOST }}
port: ${{ secrets.PI_PORT }}
username: ${{ secrets.PI_USERNAME }}
password: ${{ secrets.PI_PASSWORD }}
script: |
cd Project/bbegok/
docker-compose pull
docker-compose down
docker-compose up -d
docker image prune -f
- name: Discord Webhook when success
if: success()
env:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
uses: Ilshidur/action-discord@master
with:
args: |
## **:tada: 빼곡서버 배포 SUCCESS!**
- name: Discord Webhook when fail
if: failure()
env:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
uses: Ilshidur/action-discord@master
with:
args: |
## **:fire: 빼곡서버 배포 FAIL!**
**message** | ${{ github.event.head_commit.message }}
**commit** | ${{ github.sha }}
**go to log** | ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}