Add FirestoreStore backend (aio + generated sync) #777
Workflow file for this run
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: Run Tests | |
| on: | |
| pull_request: | |
| branches: | |
| - main | |
| paths-ignore: | |
| - '**/*.md' | |
| - '.github/workflows/claude-*.yml' | |
| push: | |
| branches: | |
| - main | |
| paths-ignore: | |
| - '**/*.md' | |
| - '.github/workflows/claude-*.yml' | |
| workflow_dispatch: | |
| jobs: | |
| markdown_lint: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - uses: DavidAnson/markdownlint-cli2-action@v20 | |
| with: | |
| config: '.markdownlint.jsonc' | |
| globs: '**/*.md' | |
| codegen_check: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: "Install uv" | |
| uses: astral-sh/setup-uv@v6 | |
| - name: "Set up Python 3.10" | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.10" | |
| - name: "Install Node.js" | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20" | |
| - name: "Install dependencies" | |
| run: make sync | |
| - name: "Run codegen" | |
| run: make codegen | |
| - name: "Run lint" | |
| run: make lint | |
| - name: "Check for uncommitted changes" | |
| run: | | |
| if ! git diff --exit-code; then | |
| echo "Error: Modified files detected after running 'make codegen lint'." | |
| echo "Please run 'make codegen lint' locally and commit the changes." | |
| exit 1 | |
| fi | |
| if [ -n "$(git ls-files --others --exclude-standard)" ]; then | |
| echo "Error: Untracked files detected after running 'make codegen lint'." | |
| echo "Untracked files:" | |
| git ls-files --others --exclude-standard | |
| echo "Please run 'make codegen lint' locally and commit the changes." | |
| exit 1 | |
| fi | |
| static_analysis: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| project: | |
| - "key-value/key-value-aio" | |
| - "key-value/key-value-shared" | |
| - "key-value/key-value-sync" | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: "Install uv" | |
| uses: astral-sh/setup-uv@v6 | |
| - name: "Install" | |
| run: uv sync --locked --group dev | |
| working-directory: ${{ matrix.project }} | |
| - name: "Lint" | |
| run: uv run ruff check --exit-non-zero-on-fix --fix . | |
| working-directory: ${{ matrix.project }} | |
| - name: "Format" | |
| run: uv run ruff format --check . | |
| working-directory: ${{ matrix.project }} | |
| - name: "Type Check" | |
| run: uv run basedpyright . | |
| working-directory: ${{ matrix.project }} | |
| test_quick: | |
| needs: | |
| - markdown_lint | |
| - codegen_check | |
| - static_analysis | |
| timeout-minutes: 10 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.10"] | |
| platform: | |
| [ | |
| ubuntu-22.04, | |
| ubuntu-latest, | |
| macos-14, | |
| macos-latest, | |
| windows-2022, | |
| windows-latest, | |
| ] | |
| project: | |
| - "key-value/key-value-aio" | |
| - "key-value/key-value-shared" | |
| - "key-value/key-value-sync" | |
| runs-on: ${{ matrix.platform }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: "Install uv" | |
| uses: astral-sh/setup-uv@v6 | |
| - name: "Set pytest worker count" | |
| id: pytest-workers | |
| run: | | |
| if [ "$RUNNER_OS" == "Windows" ]; then | |
| echo "count=2" >> $GITHUB_OUTPUT | |
| else | |
| echo "count=auto" >> $GITHUB_OUTPUT | |
| fi | |
| shell: bash | |
| - name: "Install latest dependencies" | |
| run: uv sync --locked --group dev --python ${{ matrix.python-version }} | |
| working-directory: ${{ matrix.project }} | |
| - name: "Test with latest dependencies" | |
| run: uv run pytest tests . -vv -n ${{ steps.pytest-workers.outputs.count }} | |
| working-directory: ${{ matrix.project }} | |
| - name: "Install oldest dependencies" | |
| run: uv sync --group dev --python ${{ matrix.python-version }} --resolution lowest-direct | |
| working-directory: ${{ matrix.project }} | |
| - name: "Test with oldest dependencies" | |
| run: uv run pytest tests . -vv -n ${{ steps.pytest-workers.outputs.count }} | |
| working-directory: ${{ matrix.project }} | |
| - name: "Build" | |
| run: uv build . | |
| working-directory: ${{ matrix.project }} | |
| test_all: | |
| needs: | |
| - test_quick | |
| timeout-minutes: 20 | |
| strategy: | |
| matrix: | |
| python-version: ["3.11", "3.12", "3.13"] | |
| platform: | |
| [ | |
| ubuntu-22.04, | |
| ubuntu-latest, | |
| macos-14, | |
| macos-latest, | |
| windows-2022, | |
| windows-latest, | |
| ] | |
| project: | |
| - "key-value/key-value-aio" | |
| - "key-value/key-value-shared" | |
| - "key-value/key-value-sync" | |
| runs-on: ${{ matrix.platform }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: "Install uv" | |
| uses: astral-sh/setup-uv@v6 | |
| - name: "Set pytest worker count" | |
| id: pytest-workers | |
| run: | | |
| if [ "$RUNNER_OS" == "Windows" ]; then | |
| echo "count=2" >> $GITHUB_OUTPUT | |
| else | |
| echo "count=auto" >> $GITHUB_OUTPUT | |
| fi | |
| shell: bash | |
| - name: "Install latest dependencies" | |
| run: uv sync --locked --group dev --python ${{ matrix.python-version }} | |
| working-directory: ${{ matrix.project }} | |
| - name: "Test with latest dependencies" | |
| run: uv run pytest tests . -vv -n ${{ steps.pytest-workers.outputs.count }} | |
| working-directory: ${{ matrix.project }} | |
| - name: "Install oldest dependencies" | |
| run: uv sync --group dev --python ${{ matrix.python-version }} --resolution lowest-direct | |
| working-directory: ${{ matrix.project }} | |
| - name: "Test with oldest dependencies" | |
| run: uv run pytest tests . -vv -n ${{ steps.pytest-workers.outputs.count }} | |
| working-directory: ${{ matrix.project }} | |
| - name: "Build" | |
| run: uv build . | |
| working-directory: ${{ matrix.project }} |