Add GitHub Action for automated backend deployment

- Build and push Docker image on PR merge or manual trigger
- Deploy to production server via SSH
- Uses Makefile for consistent build process

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
pull/21891/head
ytqh 11 months ago
parent 0d5949ba46
commit 03155f658d

@ -0,0 +1,55 @@
name: Deploy Backend API
on:
pull_request:
types: [closed]
branches:
- main
- master
workflow_dispatch:
jobs:
build-and-push:
# Only run if PR was merged or manually triggered
if: github.event_name == 'workflow_dispatch' || (github.event.pull_request.merged == true)
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push API image using Makefile
run: |
make build-push-api
deploy:
needs: build-and-push
runs-on: ubuntu-latest
steps:
- name: Deploy to Production Server
uses: appleboy/ssh-action@v1.0.3
with:
host: qingsu.chat
username: root
key: ${{ secrets.SSH_PRIVATE_KEY }}
port: 22
script: |
cd /root/projects/jim-dify
git fetch origin
git reset --hard origin/$(git branch --show-current)
cd docker
export HTTP_PROXY=http://host.docker.internal:1081
export HTTPS_PROXY=http://host.docker.internal:1081
export NO_PROXY=weaviate,sandbox,plugin_daemon,localhost,127.0.0.1
docker compose pull
docker compose up -d --force-recreate nginx web api worker scheduler
Loading…
Cancel
Save