name: Deploy Beta on: push: branches: - master jobs: unit-tests: runs-on: self-hosted steps: - 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 DATABASE_URL: "" DB_HOST: "" run: | cd site uv run python manage.py test docker: needs: unit-tests runs-on: self-hosted steps: - uses: actions/checkout@v4 - name: Build Docker image run: docker compose build - name: Run containerized tests run: | set -euo pipefail unset DATABASE_URL DB_HOST DB_NAME DB_USER DB_PASSWORD DB_PORT \ COMPOSE_DATABASE_URL DJANGO_ENV DJANGO_SECRET_KEY DJANGO_DEBUG \ DJANGO_ALLOWED_HOSTS || true PROJECT="client_site-ci-${{ gitea.sha }}" cleanup() { docker compose -p "$PROJECT" down -v --remove-orphans || true; } trap cleanup EXIT docker compose -p "$PROJECT" up -d --wait db docker compose -p "$PROJECT" run --rm --no-deps --entrypoint "" \ -e DJANGO_ENV=dev \ -e DJANGO_SECRET_KEY=test-secret-key \ -e DJANGO_DEBUG=true \ -e DJANGO_ALLOWED_HOSTS=localhost,127.0.0.1,testserver \ -e DATABASE_URL=postgres://client_site:client_site@db:5432/client_site \ -e SITE_UNDER_CONSTRUCTION=false \ web uv run python manage.py test deploy-beta: needs: docker runs-on: self-hosted env: SERVER_INFRA_ROOT: /home/westfarn/Documents/repos/server-infra ANSIBLE_PRIVATE_KEY_FILE: /home/westfarn/.ssh/ansible_deploy steps: # --app MUST match server-infra app_catalog (this package slug). - name: Deploy client_site beta to all webservers run: | "$SERVER_INFRA_ROOT/scripts/deploy.sh" \ --app client_site \ --env beta \ --ref "${{ gitea.sha }}"