From b0e3d49a318b8de896b18144b829ff07f081fd48 Mon Sep 17 00:00:00 2001 From: Vlada Dusek Date: Fri, 13 Feb 2026 18:15:12 +0100 Subject: [PATCH 1/3] ci: add global concurrency group for E2E tests Add a concurrency group to ensure only one E2E test job runs at a time across all workflow runs (PRs, master pushes, manual dispatches). Previously, max-parallel only limited parallelism within a single workflow run, so concurrent workflow runs could exceed the platform's resource limits. Also increase max-parallel to 2 as a compromise between stability and performance. Relates to https://github.com/apify/apify-sdk-python/issues/785 Co-Authored-By: Claude Opus 4.6 --- .github/workflows/_tests.yaml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/_tests.yaml b/.github/workflows/_tests.yaml index 9151c61f..154ca359 100644 --- a/.github/workflows/_tests.yaml +++ b/.github/workflows/_tests.yaml @@ -85,11 +85,15 @@ jobs: (github.event_name == 'push' && github.ref == 'refs/heads/master') }} + # E2E tests build and run Actors on the platform. The combination of max-parallel 2 with 16 pytest + # workers and a global concurrency group is a compromise between stability and performance - it keeps + # the platform's resource usage in check while still allowing reasonable test throughput. + concurrency: + group: e2e-tests + cancel-in-progress: false + strategy: - # E2E tests build and run Actors on the platform. Limit parallel workflows to 1 to avoid exceeding - # the platform's memory limits. A single workflow with 16 pytest workers provides good test - # parallelization while staying within platform constraints. - max-parallel: 1 + max-parallel: 2 matrix: os: ["ubuntu-latest"] python-version: ["3.10", "3.14"] From e15cfd0115800a0feb61fd28d2883bbac50f6217 Mon Sep 17 00:00:00 2001 From: Vlada Dusek Date: Fri, 13 Feb 2026 18:25:58 +0100 Subject: [PATCH 2/3] try concurrency 8 --- .github/workflows/_tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/_tests.yaml b/.github/workflows/_tests.yaml index 154ca359..e6680869 100644 --- a/.github/workflows/_tests.yaml +++ b/.github/workflows/_tests.yaml @@ -101,7 +101,7 @@ jobs: runs-on: ${{ matrix.os }} env: - TESTS_CONCURRENCY: "16" + TESTS_CONCURRENCY: "8" steps: - name: Checkout repository From 2f7b922ebaa647d3964187ab34b58d918837852c Mon Sep 17 00:00:00 2001 From: Vlada Dusek Date: Fri, 13 Feb 2026 19:03:50 +0100 Subject: [PATCH 3/3] ci: set E2E max-parallel to 4 Co-Authored-By: Claude Opus 4.6 --- .github/workflows/_tests.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/_tests.yaml b/.github/workflows/_tests.yaml index e6680869..4d2db72c 100644 --- a/.github/workflows/_tests.yaml +++ b/.github/workflows/_tests.yaml @@ -85,7 +85,7 @@ jobs: (github.event_name == 'push' && github.ref == 'refs/heads/master') }} - # E2E tests build and run Actors on the platform. The combination of max-parallel 2 with 16 pytest + # E2E tests build and run Actors on the platform. The combination of max-parallel 4 with 16 pytest # workers and a global concurrency group is a compromise between stability and performance - it keeps # the platform's resource usage in check while still allowing reasonable test throughput. concurrency: @@ -93,7 +93,7 @@ jobs: cancel-in-progress: false strategy: - max-parallel: 2 + max-parallel: 4 matrix: os: ["ubuntu-latest"] python-version: ["3.10", "3.14"] @@ -101,7 +101,7 @@ jobs: runs-on: ${{ matrix.os }} env: - TESTS_CONCURRENCY: "8" + TESTS_CONCURRENCY: "16" steps: - name: Checkout repository