Skip to content

Templates end-to-end tests #35

Templates end-to-end tests

Templates end-to-end tests #35

name: Templates end-to-end tests
on:
workflow_dispatch:
schedule:
- cron: '0 6 * * *'
jobs:
end_to_end_tests:
name: End-to-end tests
strategy:
fail-fast: false
max-parallel: 12
matrix:
crawler-type: ["playwright_camoufox", "playwright", "parsel", "beautifulsoup"]
http-client: [ "httpx", "curl_impersonate"]
package-manager: ["pip", "uv", "poetry"]
runs-on: "ubuntu-latest"
env:
python-version: "3.13"
node-version: "22"
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: ${{ env.node-version }}
- name: Install dependencies
run: npm install -g apify-cli
- name: Set up Python ${{ env.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.python-version }}
# installed to be able to patch crawlee in the poetry.lock with custom wheel file for poetry based templates
- name: Install poetry
run: pipx install poetry
- name: Set up uv package manager
uses: astral-sh/setup-uv@v6
with:
python-version: ${{ env.python-version }}
# Sync the project, but no need to install the browsers into the test runner environment.
- name: Install Python dependencies
run: make install-sync
- name: Run templates end-to-end tests
run: make e2e-templates-tests args="-m ${{ matrix.http-client }} and ${{ matrix.crawler-type }} and ${{ matrix.package-manager }}"
env:
APIFY_TEST_USER_API_TOKEN: ${{ secrets.APIFY_TEST_USER_API_TOKEN }}