Merge pull request #23 from newsdataapi/release/0.2.0 #2
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 | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| # Cancel in-progress runs for the same branch when a new push arrives. | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| test: | |
| name: pytest (Python ${{ matrix.python-version }}) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| enable-cache: true | |
| - name: Install Python ${{ matrix.python-version }} | |
| run: uv python install ${{ matrix.python-version }} | |
| - name: Sync dependencies | |
| run: uv sync --python ${{ matrix.python-version }} | |
| - name: Run unit tests | |
| run: uv run --python ${{ matrix.python-version }} pytest | |
| lint: | |
| name: ruff + mypy | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| enable-cache: true | |
| - name: Sync dependencies | |
| run: uv sync | |
| - name: Ruff | |
| run: uv run ruff check src/ tests/ examples/ | |
| - name: Mypy | |
| run: uv run mypy src/ | |
| integration: | |
| # Only run live API tests on the canonical repository, on push to main. | |
| # Forks won't have the secret and would fail otherwise. | |
| name: live API tests | |
| runs-on: ubuntu-latest | |
| needs: [test, lint] | |
| if: github.repository == 'bytesview/python-client' && github.event_name == 'push' | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v6 | |
| - name: Sync dependencies | |
| run: uv sync | |
| - name: Run integration tests | |
| env: | |
| PYTEST_TOKEN: ${{ secrets.PYTEST_NEWSDATA_API }} | |
| run: | | |
| if [ -z "${PYTEST_TOKEN}" ]; then | |
| echo "PYTEST_NEWSDATA_API secret not set; skipping integration tests." | |
| exit 0 | |
| fi | |
| uv run pytest -m integration |