From 638940c694f46499bb66f4a5ae6e00d04745cf2d Mon Sep 17 00:00:00 2001 From: Dmitriy Petrov Date: Sun, 1 Mar 2026 02:45:05 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=BF=D0=BE=D0=BB=D0=BD=D1=8B=D0=B9=20?= =?UTF-8?q?CI/CD=20=E2=80=94=20build=20=D0=BD=D0=B0=20107,=20deploy=20?= =?UTF-8?q?=D0=BD=D0=B0=20111?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - build job (ubuntu-latest/107): docker build + push в Gitea Registry - deploy job (lxc-111): docker pull + docker run с network=host - Данные сохраняются в /opt/vpn-proxy/data volume - Ansible плейбук больше не нужен для деплоя Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .gitea/workflows/docker-build.yml | 39 ++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/docker-build.yml b/.gitea/workflows/docker-build.yml index a6bd034..7b7bd7a 100644 --- a/.gitea/workflows/docker-build.yml +++ b/.gitea/workflows/docker-build.yml @@ -1,10 +1,13 @@ -name: Build and Push Docker Image +name: Build and Deploy Sing-proxy on: push: branches: [master] workflow_dispatch: +env: + DEPLOY_PATH: /opt/vpn-proxy + jobs: build: runs-on: ubuntu-latest @@ -31,3 +34,37 @@ jobs: docker push "${IMAGE}:latest" echo "Pushed: ${IMAGE}:latest" + + deploy: + needs: build + runs-on: lxc-111 + steps: + - name: Deploy to LXC 111 + run: | + REGISTRY_HOST=$(echo "${{ gitea.server_url }}" | sed 's|https\?://||') + IMAGE="${REGISTRY_HOST}/${{ gitea.repository }}/sing-proxy" + + echo "Logging into registry..." + echo "${{ secrets.REGISTRY_TOKEN }}" | docker login "$REGISTRY_HOST" -u "${{ gitea.actor }}" --password-stdin + + echo "Pulling latest image..." + docker pull "${IMAGE}:latest" + + echo "Stopping old container..." + docker stop sing-proxy 2>/dev/null || true + docker rm sing-proxy 2>/dev/null || true + + echo "Starting new container..." + docker run -d \ + --name sing-proxy \ + --network host \ + --restart unless-stopped \ + -e PORT=3456 \ + -e PROXY_PORT=8080 \ + -v ${{ env.DEPLOY_PATH }}/data:/app/data \ + --memory=256m \ + "${IMAGE}:latest" + + echo "Deployment complete!" + sleep 3 + docker ps | grep sing-proxy