support: Add support for windows and macos #18
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: Tests | |
| on: | |
| pull_request: | |
| branches: | |
| - "**" | |
| push: | |
| branches: | |
| - main | |
| env: | |
| REDIS_VERSION: 8.4.0 | |
| jobs: | |
| # TODO: Add another job that will determine which tests to run based on push types and the changes that were made. | |
| check-style: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| version: 9 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.13" | |
| - run: | | |
| pip install -e .[dev] | |
| scripts/check-prettier.sh | |
| ruff check . | |
| cargo fmt --all -- --check | |
| cargo clippy --workspace -- -D warnings | |
| tests: | |
| name: ${{ matrix.os }} (Py ${{ matrix.python-version }}) | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.11", "3.12", "3.13", "3.14"] | |
| os: [ubuntu-latest, macos-15-intel, macos-latest] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Redis (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash -euxo pipefail {0} | |
| run: | | |
| # Extract major version (e.g., 8.4.0 -> 8) | |
| MAJOR_VERSION=$(echo "${{ env.REDIS_VERSION }}" | cut -d. -f1) | |
| # Check if a specific versioned formula exists, otherwise use latest | |
| if brew info "redis@$MAJOR_VERSION" >/dev/null 2>&1; then | |
| brew install "redis@$MAJOR_VERSION" | |
| brew services start "redis@$MAJOR_VERSION" | |
| echo "$(brew --prefix "redis@$MAJOR_VERSION")/bin" >> $GITHUB_PATH | |
| else | |
| brew install redis | |
| brew services start redis | |
| fi | |
| - name: Run Test Suite | |
| uses: ./.github/actions/tests | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| tests-pass: | |
| if: (github.repository_owner == 'ccxlv') | |
| needs: [check-style, tests] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - run: echo "All tests passed ✅" |