UV + Precommit + a CLI Entry Point #191
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: hypothesis-jsonschema CI | |
| on: | |
| push: | |
| branches: [ master ] | |
| pull_request: | |
| branches: [ master ] | |
| jobs: | |
| check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv and set the python version | |
| uses: astral-sh/setup-uv@v5 | |
| with: | |
| python-version: "3.11" | |
| - name: Run checks | |
| run: | | |
| uv run tox --recreate -e check | |
| git diff --exit-code | |
| test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.8", "3.9", "3.10", "3.11", "pypy-3.8", "pypy-3.9", "pypy-3.10"] | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv and set the python version | |
| uses: astral-sh/setup-uv@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Run tests | |
| # Disable coverage on PyPy | |
| run: | | |
| uv run tox --recreate -e test \ | |
| -- -n auto --durations=10 -k "not test_can_generate_for_real_large_schema" \ | |
| $(${{ startsWith(matrix.python-version, 'pypy') }} && echo '--no-cov') | |
| test-slow: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.8", "3.9", "3.10", "3.11"] # FIXME: these segfault PyPy | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv and set the python version | |
| uses: astral-sh/setup-uv@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Run slow tests | |
| run: | | |
| uv run tox --recreate -e test \ | |
| -- -n auto --durations=10 --no-cov -k test_can_generate_for_real_large_schema | |
| release: | |
| runs-on: ubuntu-latest | |
| needs: [check, test, test-slow] | |
| if: github.repository == 'python-jsonschema/hypothesis-jsonschema' && github.ref == 'refs/heads/master' | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv and set the python version | |
| uses: astral-sh/setup-uv@v5 | |
| with: | |
| python-version: "3.8" | |
| - name: Upload new release | |
| env: | |
| TWINE_USERNAME: '__token__' | |
| TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }} | |
| run: | | |
| pip install twine | |
| uv build | |
| twine upload --skip-existing dist/* |