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