Spaces:
Paused
Paused
| name: Tests | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - dev | |
| paths-ignore: | |
| - '*.md' | |
| - '**/*.md' | |
| - 'docs/*' | |
| - 'images/*' | |
| - '.github/*' | |
| - '*.yml' | |
| - '*.yaml' | |
| - 'ruff.toml' | |
| concurrency: | |
| group: ${{github.workflow}}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| tests: | |
| timeout-minutes: 60 | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - python-version: "3.10" | |
| os: macos-latest | |
| env: | |
| TOXENV: py310 | |
| - python-version: "3.11" | |
| os: macos-latest | |
| env: | |
| TOXENV: py311 | |
| - python-version: "3.12" | |
| os: macos-latest | |
| env: | |
| TOXENV: py312 | |
| - python-version: "3.13" | |
| os: macos-latest | |
| env: | |
| TOXENV: py313 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: 'pip' | |
| cache-dependency-path: | | |
| pyproject.toml | |
| tox.ini | |
| - name: Install all browsers dependencies | |
| run: | | |
| python3 -m pip install --upgrade pip | |
| python3 -m pip install playwright==1.56.0 patchright==1.56.0 | |
| - name: Get Playwright version | |
| id: playwright-version | |
| run: | | |
| PLAYWRIGHT_VERSION=$(python3 -c "import importlib.metadata; print(importlib.metadata.version('playwright'))") | |
| echo "version=$PLAYWRIGHT_VERSION" >> $GITHUB_OUTPUT | |
| echo "Playwright version: $PLAYWRIGHT_VERSION" | |
| - name: Retrieve Playwright browsers from cache if any | |
| id: playwright-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cache/ms-playwright | |
| ~/Library/Caches/ms-playwright | |
| ~/.ms-playwright | |
| key: ${{ runner.os }}-playwright-${{ steps.playwright-version.outputs.version }}-v1 | |
| restore-keys: | | |
| ${{ runner.os }}-playwright-${{ steps.playwright-version.outputs.version }}- | |
| ${{ runner.os }}-playwright- | |
| - name: Install Playwright browsers | |
| run: | | |
| echo "Cache hit: ${{ steps.playwright-cache.outputs.cache-hit }}" | |
| if [ "${{ steps.playwright-cache.outputs.cache-hit }}" != "true" ]; then | |
| python3 -m playwright install chromium | |
| else | |
| echo "Skipping install - using cached Playwright browsers" | |
| fi | |
| python3 -m playwright install-deps chromium | |
| # Cache tox environments | |
| - name: Cache tox environments | |
| uses: actions/cache@v4 | |
| with: | |
| path: .tox | |
| # Include python version and os in the cache key | |
| key: tox-v1-${{ runner.os }}-py${{ matrix.python-version }}-${{ hashFiles('/Users/runner/work/Scrapling/pyproject.toml') }} | |
| restore-keys: | | |
| tox-v1-${{ runner.os }}-py${{ matrix.python-version }}- | |
| tox-v1-${{ runner.os }}- | |
| - name: Install tox | |
| run: pip install -U tox | |
| - name: Run tests | |
| env: ${{ matrix.env }} | |
| run: tox |