diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 8a780cd..4757bcf 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -1,39 +1,48 @@ -name: Jambotron Multi-Env Deploy - +name: Jambotron Deploy on: push: - branches: - - production - - development + branches: [ development, production ] jobs: build-and-deploy: - runs-on: ubuntu-latest # Это заставит helsinki-runner работать прямо в системе - # НИКАКОГО БЛОКА container ТУТ БЫТЬ НЕ ДОЛЖНО + runs-on: ubuntu-latest # Работаем прямо на хосте helsinki-runner + # БЛОК container УДАЛЕН, чтобы избежать ошибок сокета и путей steps: - - name: Checkout Code + - name: Checkout code uses: actions/checkout@v3 - - name: Define Environment - run: | - 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: | - # Теперь Docker точно будет найден, так как мы в основной системе - docker build -t jambotron-app:${{ env.DOCKER_TAG }} . + # Условие для тега образа + TAG=$([[ "${{ github.ref }}" == "refs/heads/production" ]] && echo "prod-latest" || echo "stg-latest") + docker build -t jambotron-app:$TAG . - - name: Deploy to Server + - name: Deploy Monolith run: | - # Переходим в папку, которую мы видели в Midnight Commander - cd /root/jambotron-infra - docker compose -f ${{ env.COMPOSE_FILE }} up -d --remove-orphans \ No newline at end of file + # Выбираем настройки в зависимости от ветки + if [[ "${{ github.ref }}" == "refs/heads/production" ]]; then + NAME="jambotron-prod" + DB_DB="jambotron_prod" + DOMAIN="jambotron.com" + else + NAME="jambotron-staging" + DB_DB="jambotron_stg" + DOMAIN="staging.jambotron.com" + fi + + docker stop $NAME || true + docker rm $NAME || true + + docker run -d \ + --name $NAME \ + --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/$DB_DB \ + -e SPRING_DATASOURCE_USERNAME=jambotron_admin \ + -e SPRING_DATASOURCE_PASSWORD=jambo_secret_pass \ + -l "caddy=$DOMAIN" \ + -l 'caddy.reverse_proxy={{upstreams 8081}}' \ + jambotron-app:$([[ "${{ github.ref }}" == "refs/heads/production" ]] && echo "prod-latest" || echo "stg-latest") \ No newline at end of file