Files
GmRelayBot/.gitea/workflows/deploy.yml
T
Toutsu c9c5d1ac2a
Deploy Telegram Bot / build-and-push (push) Failing after 19s
Deploy Telegram Bot / deploy (push) Has been skipped
Настройка сборки образов
2026-04-17 14:02:14 +03:00

64 lines
2.5 KiB
YAML

name: Deploy Telegram Bot
on:
push:
branches:
- main
jobs:
# ЧАСТЬ 1: Собираем образы и кладем в Gitea (чтобы делиться с ребятами)
build-and-push:
runs-on: ubuntu-latest # Замени на метку твоего раннера, если она другая
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Login to Gitea Container Registry
uses: docker/login-action@v3
with:
registry: https://git.codeanddice.ru # НАПРИМЕР: gitea.my-server.com
username: ${{ gitea.actor }}
password: ${{ secrets.GIT_TOKEN }}
- name: Build and push Bot
uses: docker/build-push-action@v5
with:
context: .
file: src/GmRelay.Bot/Dockerfile
push: true
tags: https://git.codeanddice.ru/${{ gitea.actor }}/gmrelay-bot:latest
- name: Build and push Web
uses: docker/build-push-action@v5
with:
context: .
file: src/GmRelay.Web/Dockerfile
push: true
tags: https://git.codeanddice.ru/${{ gitea.actor }}/gmrelay-web:latest
# ЧАСТЬ 2: Запускаем эти образы на самом сервере
deploy:
needs: build-and-push
runs-on: ubuntu-latest # Тот же локальный раннер
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Create .env file with secrets
run: |
echo "TELEGRAM_BOT_TOKEN=${{ secrets.TELEGRAM_BOT_TOKEN }}" > .env
echo "POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }}" >> .env
echo "TELEGRAM_BOT_USERNAME=${{ secrets.TELEGRAM_BOT_USERNAME }}" >> .env
- name: Deploy Containers
run: |
# Авторизуемся локальным докером в нашей Gitea
docker login https://git.codeanddice.ru/ -u ${{ gitea.actor }} -p ${{ secrets.GIT_TOKEN }}
# Так как раннер на том же сервере, образ уже закэширован,
# но pull гарантирует, что compose подхватит именно свежий latest-тег.
docker compose pull bot web
# Запускаем! Флаг -d оставит их работать в фоне.
# БД не перезапустится, так как её образ не менялся.
docker compose up -d