name: Deploy Company Site # Deploy pipeline runs only on pushes to master (never on pull requests). on: workflow_run: workflows: [Unit Tests] types: [completed] branches: [master] jobs: test: runs-on: self-hosted steps: - name: Checkout uses: actions/checkout@v4 - name: Install uv run: | curl -LsSf https://astral.sh/uv/install.sh | sh echo "$HOME/.local/bin" >> "$GITHUB_PATH" - name: Install dependencies run: uv sync --frozen - name: Run unit tests env: DJANGO_ENV: dev DJANGO_SECRET_KEY: test-secret-key run: | cd company_site uv run python manage.py test docker: runs-on: self-hosted needs: test steps: - name: Checkout uses: actions/checkout@v4 - 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: [test, docker] steps: - name: Checkout uses: actions/checkout@v4 with: ref: ${{ gitea.event.workflow_run.head_sha }} - name: Deploy to live site run: bash scripts/deploy.sh "${{ gitea.workspace }}"