38 lines
1.3 KiB
YAML
38 lines
1.3 KiB
YAML
name: Jambotron Multi-Env Deploy
|
||
|
||
on:
|
||
push:
|
||
branches:
|
||
- production
|
||
- development
|
||
|
||
jobs:
|
||
build-and-deploy:
|
||
runs-on: self-hosted # Твой runner на Hetzner в Хельсинки
|
||
steps:
|
||
- name: Checkout Code
|
||
uses: actions/checkout@v3
|
||
|
||
- name: Define Environment
|
||
run: |
|
||
# Инженерная заметка: секреты берем из Gitea 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
|
||
else
|
||
echo "ENV_NAME=staging" >> $GITHUB_ENV
|
||
echo "COMPOSE_FILE=docker-compose.staging.yml" >> $GITHUB_ENV
|
||
echo "DOCKER_TAG=stg-latest" >> $GITHUB_ENV
|
||
fi
|
||
|
||
- name: Build Docker Image
|
||
run: |
|
||
# Сборка образа для конкретной среды (SaaS 2.0)
|
||
docker build -t jambotron-app:${{ env.DOCKER_TAG }} .
|
||
|
||
- name: Deploy to Server
|
||
run: |
|
||
# Запуск в папке /root/jambotron-infra/ с нужным конфигом
|
||
docker compose -f ${{ env.COMPOSE_FILE }} up -d --remove-orphans |