Skip to content

fix: improve error handling in getMyDetail role check #53

fix: improve error handling in getMyDetail role check

fix: improve error handling in getMyDetail role check #53

name: Build and Deploy API Server
on:
push:
branches:
- main
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "21"
- name: Grant execute permission
run: chmod +x gradlew
- name: Build JAR
run: ./gradlew clean build -x test
- name: Build Docker image
run: docker build -t ${{ secrets.DOCKER_USERNAME }}/bandchu-api:1.0.0 .
- name: Login Docker hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Push to Docker Hub
run: docker push ${{ secrets.DOCKER_USERNAME }}/bandchu-api:1.0.0
deploy:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set Target Directory
id: vars
run: echo "TARGET_DIR=/home/${{ secrets.EC2_USER }}/bandchu/docker" >> $GITHUB_OUTPUT
- name: Transfer Docker Files via SCP
uses: appleboy/[email protected]
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_SSH_KEY }}
port: ${{ secrets.EC2_PORT }}
source: "docker-compose.yml,nginx"
target: ${{ steps.vars.outputs.TARGET_DIR }}
overwrite: true
- name: Deploy via SSH
uses: appleboy/[email protected]
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_SSH_KEY }}
port: ${{ secrets.EC2_PORT }}
script: |
TARGET_DIR=/home/${{ secrets.EC2_USER }}/bandchu/docker
mkdir -p $TARGET_DIR
cd $TARGET_DIR
echo "${{ secrets.ENV_FILE }}" | base64 -d > .env
docker pull ${{ secrets.DOCKER_USERNAME }}/bandchu-api:1.0.0
docker compose stop api || true
docker compose rm -f api || true
docker compose up -d api