name: deploy staging on: push: branches: - main paths: - "backend/src/**" - "backend/pyproject.toml" - "backend/uv.lock" - "backend/Dockerfile" - "backend/fly.staging.toml" - "backend/alembic/**" - "backend/alembic.ini" - ".github/workflows/deploy-staging.yml" workflow_dispatch: jobs: deploy: name: deploy staging runs-on: ubuntu-latest concurrency: deploy-backend-staging steps: - uses: actions/checkout@v4 - name: detect changes uses: dorny/paths-filter@v3 id: changes with: filters: .github/path-filters.yml - uses: superfly/flyctl-actions/setup-flyctl@master - name: deploy to fly.io staging run: | if [ "${{ steps.changes.outputs.migrations }}" == "true" ]; then echo "🔄 migrations detected - will run via release_command before deployment" fi flyctl deploy --config backend/fly.staging.toml --remote-only -a relay-api-staging . env: FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN_STAGING }}