name: Deploy Company Site

# Runs after Unit Tests completes on master. Direct pushes only (not PRs).
on:
  workflow_run:
    workflows: [Unit Tests]
    types: [completed]
    branches: [master]

jobs:
  docker:
    if: gitea.event.workflow_run.conclusion == 'success' && gitea.event.workflow_run.event == 'push'
    runs-on: self-hosted
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          ref: ${{ gitea.event.workflow_run.head_sha }}

      - name: Build Docker image
        run: docker compose build

      - name: Run containerized tests
        run: |
          docker compose up -d db
          docker compose run --rm --entrypoint "" \
            -e DJANGO_ENV=dev \
            -e DJANGO_SECRET_KEY=test-secret-key \
            -e DATABASE_URL=postgres://company_site:company_site@db:5432/company_site \
            web uv run python manage.py test
          docker compose down

  deploy:
    if: gitea.event.workflow_run.conclusion == 'success' && gitea.event.workflow_run.event == 'push'
    runs-on: self-hosted
    needs: docker
    env:
      SERVER_INFRA_ROOT: /home/westfarn/Documents/repos/server-infra
    steps:
      - name: Deploy company_site prod
        run: |
          "${SERVER_INFRA_ROOT}/scripts/deploy.sh" \
            --app company_site \
            --env prod \
            --ref "${{ gitea.event.workflow_run.head_sha }}"
