ci: add gitea actions workflow for docker deploy
Deploy banu-front / deploy (push) Successful in 52s

Build banu-front image and replace container on port 8080 on push to master.
Runs on self-hosted host runner with docker socket access.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
sajjadtalkhabi
2026-05-28 14:28:54 +03:30
parent 7ed6ec9ae1
commit fc0aa2586e
+51
View File
@@ -0,0 +1,51 @@
name: Deploy banu-front
on:
push:
branches: [master]
workflow_dispatch:
jobs:
deploy:
runs-on: host
env:
IMAGE: banu-front
CONTAINER: banu-front
PORT: "8080"
VITE_API_BASE_URL: http://109.122.252.86/api
VITE_USE_MOCKS: "false"
steps:
- name: Clone repository at current commit
run: |
BUILD_DIR="$(mktemp -d -t banu-front-XXXXXX)"
echo "BUILD_DIR=$BUILD_DIR" >> "$GITHUB_ENV"
git clone http://109.122.252.86:3000/front-end/banu-front.git "$BUILD_DIR"
git -C "$BUILD_DIR" checkout "${{ github.sha }}"
- name: Build Docker image
run: |
docker build \
--build-arg VITE_API_BASE_URL="$VITE_API_BASE_URL" \
--build-arg VITE_USE_MOCKS="$VITE_USE_MOCKS" \
-t "$IMAGE:${{ github.sha }}" \
-t "$IMAGE:latest" \
"$BUILD_DIR"
- name: Replace running container
run: |
docker rm -f "$CONTAINER" 2>/dev/null || true
docker run -d \
--name "$CONTAINER" \
--restart unless-stopped \
-p "$PORT:80" \
"$IMAGE:latest"
- name: Prune dangling images
run: docker image prune -f
- name: Cleanup build dir
if: always()
run: rm -rf "$BUILD_DIR"
- name: Show running container
run: docker ps --filter "name=$CONTAINER" --format "table {{.Names}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}"