Files
jambotron/.gitea/workflows/deploy.yml
T

42 lines
1.6 KiB
YAML

name: Jambotron Multi-Env Deploy
on:
push:
branches:
- production
- development
jobs:
build-and-deploy:
runs-on: self-hosted # Используем твой runner на Hetzner Helsinki
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Define Environment
run: |
# ПРИМЕЧАНИЕ ДЛЯ ИНЖЕНЕРА:
# Секреты (пароли БД, ключи Auth0) берем из Settings -> Actions -> Secrets
if [[ "${{ github.ref }}" == "refs/heads/production" ]]; then
echo "ENV_NAME=prod" >> $GITHUB_ENV
echo "COMPOSE_FILE=docker-compose.yml" >> $GITHUB_ENV
echo "DOCKER_TAG=prod-latest" >> $GITHUB_ENV
echo "SPRING_PROFILE=prod" >> $GITHUB_ENV
else
echo "ENV_NAME=staging" >> $GITHUB_ENV
echo "COMPOSE_FILE=docker-compose.staging.yml" >> $GITHUB_ENV
echo "DOCKER_TAG=stg-latest" >> $GITHUB_ENV
echo "SPRING_PROFILE=staging" >> $GITHUB_ENV
fi
- name: Build Docker Image
run: |
# Сборка образа с тегом в зависимости от ветки
docker build -t jambotron-app:${{ env.DOCKER_TAG }} .
- name: Deploy to Server
run: |
# Запуск через соответствующий compose-файл в папке /root/jambotron-infra/
# Используем переменные из .env или .env.staging на сервере
docker compose -f ${{ env.COMPOSE_FILE }} up -d --remove-orphans