From 3f1da2e2a1b544fe1435efff238b5dfa31b8c87f Mon Sep 17 00:00:00 2001 From: Liosha Date: Mon, 27 Apr 2026 10:59:02 +0300 Subject: [PATCH] production and staging(development) --- .gitea/workflows/deploy.yml | 60 ++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 27 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index b229c99..1cd2816 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -1,36 +1,42 @@ -name: Jambotron Deploy +name: Jambotron Multi-Env Deploy + on: push: - branches: [ development ] + branches: + - production + - development jobs: build-and-deploy: - runs-on: ubuntu-latest - container: - image: catthehacker/ubuntu:act-latest + runs-on: self-hosted # Используем твой runner на Hetzner Helsinki steps: - - name: Checkout code + - name: Checkout Code uses: actions/checkout@v3 - - name: Build Docker Image - run: docker build -t jambotron-prod:latest . - - - name: Deploy Monolith + - name: Define Environment run: | - docker stop jambotron-app || true - docker rm jambotron-app || true - docker run -d \ - --name jambotron-app \ - --network jambotron-net \ - --restart always \ - -v /var/run/docker.sock:/var/run/docker.sock \ - -e SPRING_PROFILES_ACTIVE=prod \ - -e SPRING_DATASOURCE_URL=jdbc:postgresql://jambotron-db-server:5432/jambotron_prod \ - -e SPRING_DATASOURCE_USERNAME=jambotron_admin \ - -e SPRING_DATASOURCE_PASSWORD=jambo_secret_pass \ - -e SPRING_FLYWAY_URL=jdbc:postgresql://jambotron-db-server:5432/jambotron_prod \ - -e SPRING_FLYWAY_USER=jambotron_admin \ - -e SPRING_FLYWAY_PASSWORD=jambo_secret_pass \ - -l "caddy=jambotron.com" \ - -l 'caddy.reverse_proxy={{upstreams 8081}}' \ - jambotron-prod:latest \ No newline at end of file + # ПРИМЕЧАНИЕ ДЛЯ ИНЖЕНЕРА: + # Секреты (пароли БД, ключи 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 \ No newline at end of file