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