feat(functions): refactor sync and async methods #2453
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI/CD | |
| on: | |
| push: | |
| paths-ignore: | |
| - '.devcontainer/**' | |
| - 'CHANGELOG.md' | |
| - 'MAINTAINERS.md' | |
| branches: | |
| - main | |
| pull_request: | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| id-token: write | |
| jobs: | |
| test: | |
| name: py${{ matrix.python-version }} | ${{ matrix.package }} @ ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest] | |
| python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] | |
| package: ["functions", "realtime", "storage", "auth", "postgrest", "supabase"] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Clone Repository | |
| uses: actions/checkout@v5 | |
| - name: Install supabase cli latest | |
| uses: supabase/setup-cli@v1 | |
| with: | |
| version: "latest" | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| version: "0.8.2" | |
| python-version: ${{ matrix.python-version }} | |
| - name: Run Tests | |
| run: make ${{ matrix.package }}.tests | |
| - name: Upload coverage to Coveralls | |
| uses: coverallsapp/github-action@v2 | |
| with: | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| flag-name: run-${{ join(matrix.*, '-') }} | |
| parallel: true | |
| finish_tests: | |
| needs: test | |
| name: Upload tests coveralls results | |
| if: ${{ always() }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Coveralls Finished | |
| uses: coverallsapp/github-action@v2 | |
| with: | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| parallel-finished: true | |
| release-please: | |
| needs: test | |
| if: ${{ github.ref == 'refs/heads/main' && github.event_name == 'push' && github.repository_owner == 'supabase' }} | |
| runs-on: ubuntu-latest | |
| name: "Run release-please" | |
| outputs: | |
| should_publish: ${{ steps.release.outputs.release_created == 'true' }} | |
| permissions: | |
| id-token: write # IMPORTANT: this permission is mandatory for trusted publishing | |
| contents: write # needed for github actions bot to write to repo | |
| pull-requests: write | |
| steps: | |
| - name: Generate token | |
| id: app-token | |
| uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf | |
| with: | |
| app-id: ${{ secrets.GH_APP_ID }} | |
| private-key: ${{ secrets.GH_APP_PRIVATE_KEY }} | |
| - uses: googleapis/release-please-action@v4 | |
| id: release | |
| with: | |
| token: ${{ steps.app-token.outputs.token }} | |
| target-branch: ${{ github.ref_name }} | |
| config-file: release-please-config.json | |
| manifest-file: .release-please-manifest.json | |
| publish: | |
| needs: release-please | |
| if: ${{ needs.release-please.outputs.should_publish == 'true' }} | |
| runs-on: ubuntu-latest | |
| name: "Publish to PyPi" | |
| environment: | |
| name: pypi | |
| url: https://pypi.org/p/supabase | |
| permissions: | |
| id-token: write # IMPORTANT: this permission is mandatory for trusted publishing | |
| contents: write # needed for github actions bot to write to repo | |
| steps: | |
| - name: Clone Repository | |
| uses: actions/checkout@v5 | |
| with: | |
| ref: ${{ github.ref }} | |
| fetch-depth: 0 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| version: "0.8.2" | |
| python-version: "3.11" | |
| - name: Build all packages and publish | |
| run: make publish |