production and staging(development)

This commit is contained in:
2026-04-27 10:59:02 +03:00
parent 2ddbf409b5
commit 3f1da2e2a1
+33 -27
View File
@@ -1,36 +1,42 @@
name: Jambotron Deploy name: Jambotron Multi-Env Deploy
on: on:
push: push:
branches: [ development ] branches:
- production
- development
jobs: jobs:
build-and-deploy: build-and-deploy:
runs-on: ubuntu-latest runs-on: self-hosted # Используем твой runner на Hetzner Helsinki
container:
image: catthehacker/ubuntu:act-latest
steps: steps:
- name: Checkout code - name: Checkout Code
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Build Docker Image - name: Define Environment
run: docker build -t jambotron-prod:latest .
- name: Deploy Monolith
run: | run: |
docker stop jambotron-app || true # ПРИМЕЧАНИЕ ДЛЯ ИНЖЕНЕРА:
docker rm jambotron-app || true # Секреты (пароли БД, ключи Auth0) берем из Settings -> Actions -> Secrets
docker run -d \
--name jambotron-app \ if [[ "${{ github.ref }}" == "refs/heads/production" ]]; then
--network jambotron-net \ echo "ENV_NAME=prod" >> $GITHUB_ENV
--restart always \ echo "COMPOSE_FILE=docker-compose.yml" >> $GITHUB_ENV
-v /var/run/docker.sock:/var/run/docker.sock \ echo "DOCKER_TAG=prod-latest" >> $GITHUB_ENV
-e SPRING_PROFILES_ACTIVE=prod \ echo "SPRING_PROFILE=prod" >> $GITHUB_ENV
-e SPRING_DATASOURCE_URL=jdbc:postgresql://jambotron-db-server:5432/jambotron_prod \ else
-e SPRING_DATASOURCE_USERNAME=jambotron_admin \ echo "ENV_NAME=staging" >> $GITHUB_ENV
-e SPRING_DATASOURCE_PASSWORD=jambo_secret_pass \ echo "COMPOSE_FILE=docker-compose.staging.yml" >> $GITHUB_ENV
-e SPRING_FLYWAY_URL=jdbc:postgresql://jambotron-db-server:5432/jambotron_prod \ echo "DOCKER_TAG=stg-latest" >> $GITHUB_ENV
-e SPRING_FLYWAY_USER=jambotron_admin \ echo "SPRING_PROFILE=staging" >> $GITHUB_ENV
-e SPRING_FLYWAY_PASSWORD=jambo_secret_pass \ fi
-l "caddy=jambotron.com" \
-l 'caddy.reverse_proxy={{upstreams 8081}}' \ - name: Build Docker Image
jambotron-prod:latest 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