fix: improve error handling in getMyDetail role check #53
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |