Implement local Apify actor runtime (POCv2) #1
ci.yml
on: pull_request
Build, lint, unit + integration tests
43s
Actor dev-loop e2e (apify-cli + Docker)
2m 11s
Annotations
3 errors and 2 warnings
|
Actor dev-loop e2e (apify-cli + Docker)
Process completed with exit code 1.
|
|
test/e2e/actor-dev-loop.test.ts > full Actor dev loop via apify-cli (requires Docker) > the run log contains the crawler per-page lines:
test/e2e/actor-dev-loop.test.ts#L91
AssertionError: expected 'Info: Log for run with ID "PIQC2Ci17v…' to match /Processing/
- Expected:
/Processing/
+ Received:
"Info: Log for run with ID \"PIQC2Ci17vj2ioLPw\":
"
❯ test/e2e/actor-dev-loop.test.ts:91:15
|
|
test/e2e/actor-dev-loop.test.ts > full Actor dev loop via apify-cli (requires Docker) > Python sample actor: push -> build -> call(maxPages=2) -> call(maxPages=4), item count tracks input:
test/e2e/helpers/apify-cli.ts#L8
Error: Command failed: npx -y -p apify-cli apify call --input {"maxPages":2} --json
Run: Calling Actor local-user/my-python-actor (4uoDRyi08Ac22Ob8F)
Started: 2026-08-15 at 11:01:14
Build: 0.0.0 (latest) | Actor version: 0.0 (latest)
Timeout: 300 seconds
Memory: 1024 MB
View on Apify Console: http://localhost:3000/actors/4uoDRyi08Ac22Ob8F/runs/TugkB0AaEeqBFOS1h
Actor is running on the Apify platform, `disable_browser_sandbox` was changed to True.
[apify] INFO Initializing Actor ({"apify_sdk_version": "4.0.1", "apify_client_version": "3.1.2", "crawlee_version": "1.9.1", "python_version": "3.13.15", "os": "linux", "is_running_in_ipython": false})
Traceback (most recent call last):
File "<frozen runpy>", line 203, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/usr/src/app/src/__main__.py", line 6, in <module>
asyncio.run(main())
~~~~~~~~~~~^^^^^^^^
File "/usr/local/lib/python3.13/asyncio/runners.py", line 196, in run
return runner.run(main)
~~~~~~~~~~^^^^^^
File "/usr/local/lib/python3.13/asyncio/runners.py", line 119, in run
return self._loop.run_until_complete(task)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "/usr/local/lib/python3.13/asyncio/base_events.py", line 726, in run_until_complete
return future.result()
~~~~~~~~~~~~~^^
File "/usr/src/app/src/main.py", line 53, in main
async with Actor:
^^^^^
File "/usr/local/lib/python3.13/site-packages/apify/_actor.py", line 207, in __aenter__
await self._charging_manager_implementation.__aenter__()
File "/usr/local/lib/python3.13/site-packages/apify/_charging.py", line 350, in __aenter__
pricing_data = await self._fetch_pricing_info()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/apify/_charging.py", line 597, in _fetch_pricing_info
run = await self._client.run(self._actor_run_id).get()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/apify_client/_logging.py", line 121, in async_wrapper
return await fun(resource_client, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/apify_client/_resource_clients/run.py", line 505, in get
return RunResponse.model_validate(result).data
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/pydantic/main.py", line 732, in model_validate
return cls.__pydantic_validator__.validate_python(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
obj,
^^^^
...<5 lines>...
by_name=by_name,
^^^^^^^^^^^^^^^^
)
^
pydantic_core._pydantic_core.ValidationError: 4 validation errors for RunResponse
data.options.build
Field required [type=missing, input_value={'memoryMbytes': 1024, 'timeoutSecs': 300}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.13/v/missing
data.options.diskMbytes
Field required [type=missing, input_value={'memoryMbytes': 1024, 'timeoutSecs': 300}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.13/v/missing
data.generalAccess
Field required [type=missing, input_value={'id': 'TugkB0AaEeqBFOS1h...n': 'API'}, 'stats': {}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.13/v/missing
data.buildNumber
String should match pattern '^([0-9]|[1-9][0-9])\.([0-9]|[1-9][0-9])(\.[1-9][0-9]{0,4})$' [type=string_pattern_mismatch, input_value='0.0.0', input_type=str]
For further information visit https://errors.pydantic.dev/2.13/v/string_pattern_mismatch
❯ Module.apify test/e2e/helpers/apify-cli.ts:8:9
❯ itemCountFor test/e2e/actor-dev-loop.test.ts:60:25
❯ test/e2e/actor-dev-loop.test.ts:75:18
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { status: 1, signal: null, output: [ null, '{\n "ok": false,\n "operation": "call",\n "actor": {\n "id": "4uoDRyi08Ac22Ob8F",
|
|
Build, lint, unit + integration tests
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Actor dev-loop e2e (apify-cli + Docker)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|