Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion .github/workflows/pre_release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,15 @@ jobs:
release_type: prerelease
existing_changelog_path: CHANGELOG.md

actions_lint_check:
name: Actions lint check
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Run actionlint
uses: rhysd/actionlint@v1.7.9

lint_check:
name: Lint check
uses: apify/workflows/.github/workflows/python_lint_check.yaml@main
Expand All @@ -47,15 +56,22 @@ jobs:
unit_tests:
name: Unit tests
uses: apify/workflows/.github/workflows/python_unit_tests.yaml@main
secrets: inherit
with:
python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]'
operating-systems: '["ubuntu-latest", "windows-latest"]'
python-version-for-codecov: "3.14"
operating-system-for-codecov: ubuntu-latest

integration_tests:
name: Integration tests
uses: apify/workflows/.github/workflows/python_integration_tests.yaml@main
secrets: inherit
with:
python-versions: '["3.10", "3.13"]'
python-versions: '["3.10", "3.14"]'
operating-systems: '["ubuntu-latest"]'
python-version-for-codecov: "3.14"
operating-system-for-codecov: ubuntu-latest

update_changelog:
name: Update changelog
Expand Down
16 changes: 5 additions & 11 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,15 +55,9 @@ jobs:
with:
python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]'

unit_tests:
name: Unit tests
uses: apify/workflows/.github/workflows/python_unit_tests.yaml@main
with:
python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]'

update_changelog:
name: Update changelog
needs: [release_metadata, lint_check, type_check, unit_tests]
needs: [release_metadata, lint_check, type_check]
uses: apify/workflows/.github/workflows/python_bump_and_update_changelog.yaml@main
with:
version_number: ${{ needs.release_metadata.outputs.version_number }}
Expand Down Expand Up @@ -113,12 +107,12 @@ jobs:
needs: [release_metadata, update_changelog]
runs-on: ubuntu-latest
steps:
- # Trigger building the Python Docker images in apify/apify-actor-docker repo
name: Trigger Docker image build
# Trigger building the Python Docker images in apify/apify-actor-docker repo
- name: Trigger Docker image build
run: |
gh api -X POST "/repos/apify/apify-actor-docker/dispatches" \
-F event_type=build-python-images \
-F client_payload[release_tag]=latest \
-F client_payload[apify_version]=${{ needs.release_metadata.outputs.version_number }}
-F 'client_payload[release_tag]=latest' \
-F 'client_payload[apify_version]=${{ needs.release_metadata.outputs.version_number }}'
env:
GH_TOKEN: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}
16 changes: 16 additions & 0 deletions .github/workflows/run_code_checks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,15 @@ on:
workflow_dispatch:

jobs:
actions_lint_check:
name: Actions lint check
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Run actionlint
uses: rhysd/actionlint@v1.7.9

lint_check:
name: Lint check
uses: apify/workflows/.github/workflows/python_lint_check.yaml@main
Expand All @@ -27,8 +36,12 @@ jobs:
unit_tests:
name: Unit tests
uses: apify/workflows/.github/workflows/python_unit_tests.yaml@main
secrets: inherit
with:
python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]'
operating-systems: '["ubuntu-latest", "windows-latest"]'
python-version-for-codecov: "3.14"
operating-system-for-codecov: ubuntu-latest

docs_check:
name: Docs check
Expand All @@ -41,3 +54,6 @@ jobs:
secrets: inherit
with:
python-versions: '["3.10", "3.14"]'
operating-systems: '["ubuntu-latest"]'
python-version-for-codecov: "3.14"
operating-system-for-codecov: ubuntu-latest
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ build/
# Coverage reports
.coverage*
htmlcov
coverage-unit.xml
coverage-integration.xml

# IDE, editors
.vscode
Expand Down
29 changes: 24 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
.PHONY: clean install-dev build publish-to-pypi lint type-check unit-tests unit-tests-cov \
integration-tests format check-code build-api-reference build-docs run-docs
.PHONY: clean install-dev build publish-to-pypi lint type-check unit-tests unit-tests-cov integration-tests \
integration-tests-cov format check-code build-api-reference build-docs run-docs

# This is default for local testing, but GitHub workflows override it to a higher value in CI
INTEGRATION_TESTS_CONCURRENCY = 1
Expand All @@ -26,13 +26,32 @@ type-check:
uv run mypy

unit-tests:
uv run pytest --numprocesses=auto -vv --cov=src/apify tests/unit
uv run pytest \
--numprocesses=auto \
--verbose \
tests/unit

unit-tests-cov:
uv run pytest --numprocesses=auto -vv --cov=src/apify --cov-report=html tests/unit
uv run pytest \
--numprocesses=auto \
--verbose \
--cov=src/apify \
--cov-report=xml:coverage-unit.xml \
tests/unit

integration-tests:
uv run pytest --numprocesses=$(INTEGRATION_TESTS_CONCURRENCY) -vv tests/integration
uv run pytest \
--numprocesses=$(INTEGRATION_TESTS_CONCURRENCY) \
--verbose \
tests/integration

integration-tests-cov:
uv run pytest \
--numprocesses=$(INTEGRATION_TESTS_CONCURRENCY) \
--verbose \
--cov=src/apify \
--cov-report=xml:coverage-integration.xml \
tests/integration

format:
uv run ruff check --fix
Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
<a href="https://pypi.org/project/apify/" rel="nofollow">
<img src="https://img.shields.io/pypi/dm/apify" alt="PyPI - Downloads" style="max-width: 100%;">
</a>
<a href="https://codecov.io/gh/apify/apify-sdk-python" >
<img src="https://codecov.io/gh/apify/apify-sdk-python/graph/badge.svg?token=Y6JBIZQFT6" alt="Code cov report" style="max-width: 100%;"/>
</a>
<a href="https://pypi.org/project/apify/" rel="nofollow">
<img src="https://img.shields.io/pypi/pyversions/apify" alt="PyPI - Python Version" style="max-width: 100%;">
</a>
Expand Down
4 changes: 4 additions & 0 deletions tests/integration/actor/test_actor_api_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import json
from typing import TYPE_CHECKING

import pytest

from crawlee._utils.crypto import crypto_random_object_id

from .._utils import generate_unique_resource_name
Expand Down Expand Up @@ -195,6 +197,7 @@ async def main_outer() -> None:
assert inner_output_record['value'] == f'{test_value}_XXX_{test_value}'


@pytest.mark.skip(reason='Known failing test, pending investigation.')
async def test_actor_calls_task(
make_actor: MakeActorFunction,
run_actor: RunActorFunction,
Expand Down Expand Up @@ -248,6 +251,7 @@ async def main_outer() -> None:
await apify_client_async.task(task['id']).delete()


@pytest.mark.skip(reason='Known failing test, pending investigation.')
async def test_actor_aborts_another_actor_run(
make_actor: MakeActorFunction,
run_actor: RunActorFunction,
Expand Down
3 changes: 3 additions & 0 deletions tests/integration/actor/test_actor_log.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,15 @@

from typing import TYPE_CHECKING

import pytest

from apify import Actor, __version__

if TYPE_CHECKING:
from .conftest import MakeActorFunction, RunActorFunction


@pytest.mark.skip(reason='Known failing test, pending investigation.')
async def test_actor_logging(
make_actor: MakeActorFunction,
run_actor: RunActorFunction,
Expand Down
3 changes: 3 additions & 0 deletions tests/integration/actor/test_actor_scrapy.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,13 @@
from pathlib import Path
from typing import TYPE_CHECKING

import pytest

if TYPE_CHECKING:
from .conftest import MakeActorFunction, RunActorFunction


@pytest.mark.skip(reason='Known failing test, pending investigation.')
async def test_actor_scrapy_title_spider(
make_actor: MakeActorFunction,
run_actor: RunActorFunction,
Expand Down
Loading