Files
netrunner-landing/.gitea/workflows/deploy.yml
T
nineap df699a1171
Build & Push Image / Build and push to Gitea Registry (push) Failing after 15s
Переезд с ghcr.io на встроенный Container Registry Gitea
Свой netrunner-landing/netrunner-landing-proxy теперь на
gitea.netrunner-vpn.com. Сторонний образ PocketBase (ghcr.io/muchobien/
pocketbase) не трогаю — это чужой образ, живёт там же, где и жил.
2026-07-10 20:44:14 +07:00

112 lines
4.2 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Копия .github/workflows/deploy.yml для Gitea Actions.
# - Образы тянутся из встроенного Container Registry самой Gitea
# (gitea.netrunner-vpn.com), не ghcr.io — secrets.GITEA_REGISTRY_TOKEN.
# - Триггер workflow_run (авто-деплой после успешной сборки) поддерживается
# не во всех версиях Gitea Actions — если deploy-dev не срабатывает
# автоматически после build, проверить версию Gitea или временно дергать
# деплой вручную через workflow_dispatch.
name: Deploy
# Один пайплайн, две джобы (по аналогии с netrunner-backend):
# - deploy-dev: авто, срабатывает после успешного "Build & Push Image" на main.
# - deploy-prod: вручную из вкладки Actions ("Run workflow").
on:
workflow_run:
workflows: ["Build & Push Image"]
types: [completed]
branches: [main]
workflow_dispatch:
jobs:
deploy-dev:
name: Auto-deploy to Dev VPS
if: github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.workflow_run.head_sha }}
# Копируем только compose-файл — сам образ дев-сервер тянет из Gitea Registry.
- name: Sync compose file to Dev VPS
uses: appleboy/scp-action@v0.1.7
with:
host: ${{ vars.DEV_VPS_IP }}
username: root
key: ${{ secrets.DEV_SSH_PRIVATE_KEY }}
source: "docker-compose.dev-remote.yml"
target: "/root/netrunner-frontend-dev"
strip_components: 0
- name: Write .env and deploy via SSH
uses: appleboy/ssh-action@v1
with:
host: ${{ vars.DEV_VPS_IP }}
username: root
key: ${{ secrets.DEV_SSH_PRIVATE_KEY }}
envs: "BOT_USERNAME"
script: |
set -e
cd /root/netrunner-frontend-dev
# Единственное, что этому compose-файлу нужно из .env — свой dev-бот
# (см. BOT_USERNAME:? в docker-compose.dev-remote.yml). Тот же бот,
# что и у netrunner-backend dev — vars.DEV_BOT_USERNAME там же.
cat > .env <<EOF
BOT_USERNAME=${BOT_USERNAME}
EOF
chmod 600 .env
echo "🚀 Deploying landing+proxy:latest to DEV"
echo "${{ secrets.GITEA_REGISTRY_TOKEN }}" | docker login gitea.netrunner-vpn.com -u ${{ github.actor }} --password-stdin
docker compose -f docker-compose.dev-remote.yml pull
docker compose -f docker-compose.dev-remote.yml up -d --remove-orphans
docker image prune -f
echo "✅ Dev synchronized."
env:
BOT_USERNAME: ${{ vars.DEV_BOT_USERNAME }}
deploy-prod:
name: Pull & restart on Prod VPS
if: github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Copy docker-compose.yml to VPS
uses: appleboy/scp-action@v0.1.7
with:
host: ${{ vars.VPS_IP }}
username: root
key: ${{ secrets.SSH_PRIVATE_KEY }}
source: "docker-compose.yml"
target: "/root/netrunner-frontend"
- name: Deploy via SSH
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ vars.VPS_IP }}
username: root
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
set -e
cd /root/netrunner-frontend
echo ${{ secrets.GITEA_REGISTRY_TOKEN }} | docker login gitea.netrunner-vpn.com -u ${{ github.actor }} --password-stdin
echo "🚀 Deploying landing+proxy:latest to PROD"
# Тянем оба образа
docker compose pull
# Поднимаем всё
docker compose up -d --force-recreate --remove-orphans
# Чистим старье
docker image prune -f
echo "✅ Uplink synchronized."