From 00dccf49961683def727fb33b11be6552cb2d32e Mon Sep 17 00:00:00 2001 From: moe-ad Date: Wed, 5 Feb 2025 12:18:31 +0100 Subject: [PATCH 1/6] ci: parallelize some tests --- .github/workflows/tests.yml | 61 ++----------------------------------- tox.ini | 1 + 2 files changed, 4 insertions(+), 58 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 774918d704..9907d0ca2d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -238,46 +238,14 @@ jobs: run: | tox -e pretest - - name: "Test API" - shell: bash - run: | - tox -e test-api,kill-servers ${{ steps.tox-cli-arguments.outputs.TOX_EXTRA_ARG }} - - - name: "Test API test_launcher" + - name: "Run compatible tests in parallel" uses: nick-fields/retry@v3 with: - timeout_minutes: 10 + timeout_minutes: 15 max_attempts: 2 shell: bash command: | - tox -e test-launcher,kill-servers ${{ steps.tox-cli-arguments.outputs.TOX_EXTRA_ARG }} - - - name: "Test API test_server" - uses: nick-fields/retry@v3 - with: - timeout_minutes: 10 - max_attempts: 2 - shell: bash - command: | - tox -e test-server,kill-servers ${{ steps.tox-cli-arguments.outputs.TOX_EXTRA_ARG }} - - - name: "Test API test_local_server" - uses: nick-fields/retry@v3 - with: - timeout_minutes: 10 - max_attempts: 2 - shell: bash - command: | - tox -e test-local_server,kill-servers ${{ steps.tox-cli-arguments.outputs.TOX_EXTRA_ARG }} - - - name: "Test API test_multi_server" - uses: nick-fields/retry@v3 - with: - timeout_minutes: 10 - max_attempts: 2 - shell: bash - command: | - tox -e test-multi_server,kill-servers ${{ steps.tox-cli-arguments.outputs.TOX_EXTRA_ARG }} + tox run-parallel -m ciparalleltests ${{ steps.tox-cli-arguments.outputs.TOX_EXTRA_ARG }} - name: "Test API test_remote_workflow" uses: nick-fields/retry@v3 @@ -311,29 +279,6 @@ jobs: command: | tox -e test-service,kill-servers ${{ steps.tox-cli-arguments.outputs.TOX_EXTRA_ARG }} - - name: "Test API Entry" - shell: bash - run: | - tox -e test-api_entry,kill-servers ${{ steps.tox-cli-arguments.outputs.TOX_EXTRA_ARG }} - - - name: "Test API test_custom_type_field" - uses: nick-fields/retry@v3 - with: - timeout_minutes: 10 - max_attempts: 2 - shell: bash - command: | - tox -e test-custom_type_field,kill-servers ${{ steps.tox-cli-arguments.outputs.TOX_EXTRA_ARG }} - - - name: "Test Operators" - uses: nick-fields/retry@v3 - with: - timeout_minutes: 10 - max_attempts: 2 - shell: bash - command: | - tox -e test-operators,kill-servers ${{ steps.tox-cli-arguments.outputs.TOX_EXTRA_ARG }} - - name: "Combine coverage results" shell: bash run: | diff --git a/tox.ini b/tox.ini index d89e3b7d75..af1a130f57 100644 --- a/tox.ini +++ b/tox.ini @@ -33,6 +33,7 @@ envlist = pretest,test-{api,launcher,server,local_server,multi_server,api_entry, labels = othertests = pretest,test-{workflow,remote_workflow,remote_operator,service},posttest,kill-servers + ciparalleltests = test-{api,launcher,server,local_server,multi_server,api_entry,custom_type_field,operators},kill-servers isolated_build_env = build From f9b04dfc66dfbe17e243cec89495e34aee2c27ce Mon Sep 17 00:00:00 2001 From: moe-ad Date: Wed, 5 Feb 2025 14:37:00 +0100 Subject: [PATCH 2/6] ci: check effect of skipping erring tests --- tests/entry/test_entry.py | 1 + tests/test_data_tree.py | 2 ++ tests/test_server.py | 2 ++ 3 files changed, 5 insertions(+) diff --git a/tests/entry/test_entry.py b/tests/entry/test_entry.py index 7ab00f28ff..38c3d34548 100644 --- a/tests/entry/test_entry.py +++ b/tests/entry/test_entry.py @@ -139,6 +139,7 @@ def test_apply_context_remote(remote_config_server_type): @pytest.mark.order(5) @conftest.raises_for_servers_version_under("4.0") +@pytest.mark.skip(reason="affecting parallel runs in CI") def test_runtime_client_no_server(remote_config_server_type): dpf.server.shutdown_all_session_servers() dpf.SERVER_CONFIGURATION = remote_config_server_type diff --git a/tests/test_data_tree.py b/tests/test_data_tree.py index 15215cd482..f3ca685d80 100644 --- a/tests/test_data_tree.py +++ b/tests/test_data_tree.py @@ -168,6 +168,7 @@ def test_write_data_tree(): @conftest.raises_for_servers_version_under("4.0") +@pytest.mark.skip(reason="affecting parallel runs in CI") def test_write_to_file_data_tree(tmpdir, server_type): data_tree = dpf.DataTree(server=server_type) with data_tree.to_fill() as to_fill: @@ -231,6 +232,7 @@ def test_write_to_file_remote_data_tree(tmpdir, server_clayer_remote_process): @conftest.raises_for_servers_version_under("4.0") +@pytest.mark.skip(reason="affecting parallel runs in CI") def test_read_from_txt_data_tree(server_type): data_tree = dpf.DataTree(server=server_type) with data_tree.to_fill() as to_fill: diff --git a/tests/test_server.py b/tests/test_server.py index b58b90f2c3..15140ae68b 100644 --- a/tests/test_server.py +++ b/tests/test_server.py @@ -139,6 +139,7 @@ def test_shutdown_all_session_servers(self, server_config): shutdown_all_session_servers() assert not has_local_server() + @pytest.mark.skip(reason="affecting parallel runs in CI") def test_start_shutdown_start(self, server_config): set_server_configuration(server_config) # print(dpf.core.SERVER_CONFIGURATION) @@ -320,6 +321,7 @@ def test_go_away_server(): reason="Not existing in version lower than 4.0", ) @pytest.mark.skipif(running_docker, reason="Unstable on Docker") +@pytest.mark.skip(reason="affecting parallel runs in CI") def test_start_after_shutting_down_server(): remote_server = start_local_server( config=dpf.core.AvailableServerConfigs.GrpcServer, as_global=False From cf1ba1ca39015cec88c5bb9743ea690a32aba2fc Mon Sep 17 00:00:00 2001 From: moe-ad Date: Wed, 5 Feb 2025 15:36:09 +0100 Subject: [PATCH 3/6] ci: empty commit to check stability after exclusion From dcd356f8a6d41b3c9a83e947e3fde2bf8d42b3ac Mon Sep 17 00:00:00 2001 From: moe-ad Date: Wed, 5 Feb 2025 16:15:57 +0100 Subject: [PATCH 4/6] ci: implemented changes --- .github/workflows/tests.yml | 9 +++++++++ tests/entry/test_entry.py | 1 - tests/test_data_tree.py | 2 -- tests/test_server.py | 2 -- tox.ini | 2 +- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9907d0ca2d..f838c45f5f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -247,6 +247,15 @@ jobs: command: | tox run-parallel -m ciparalleltests ${{ steps.tox-cli-arguments.outputs.TOX_EXTRA_ARG }} + - name: "Test API test_server" + uses: nick-fields/retry@v3 + with: + timeout_minutes: 10 + max_attempts: 2 + shell: bash + command: | + tox -e test-server,kill-servers ${{ steps.tox-cli-arguments.outputs.TOX_EXTRA_ARG }} + - name: "Test API test_remote_workflow" uses: nick-fields/retry@v3 with: diff --git a/tests/entry/test_entry.py b/tests/entry/test_entry.py index 38c3d34548..7ab00f28ff 100644 --- a/tests/entry/test_entry.py +++ b/tests/entry/test_entry.py @@ -139,7 +139,6 @@ def test_apply_context_remote(remote_config_server_type): @pytest.mark.order(5) @conftest.raises_for_servers_version_under("4.0") -@pytest.mark.skip(reason="affecting parallel runs in CI") def test_runtime_client_no_server(remote_config_server_type): dpf.server.shutdown_all_session_servers() dpf.SERVER_CONFIGURATION = remote_config_server_type diff --git a/tests/test_data_tree.py b/tests/test_data_tree.py index f3ca685d80..15215cd482 100644 --- a/tests/test_data_tree.py +++ b/tests/test_data_tree.py @@ -168,7 +168,6 @@ def test_write_data_tree(): @conftest.raises_for_servers_version_under("4.0") -@pytest.mark.skip(reason="affecting parallel runs in CI") def test_write_to_file_data_tree(tmpdir, server_type): data_tree = dpf.DataTree(server=server_type) with data_tree.to_fill() as to_fill: @@ -232,7 +231,6 @@ def test_write_to_file_remote_data_tree(tmpdir, server_clayer_remote_process): @conftest.raises_for_servers_version_under("4.0") -@pytest.mark.skip(reason="affecting parallel runs in CI") def test_read_from_txt_data_tree(server_type): data_tree = dpf.DataTree(server=server_type) with data_tree.to_fill() as to_fill: diff --git a/tests/test_server.py b/tests/test_server.py index 15140ae68b..b58b90f2c3 100644 --- a/tests/test_server.py +++ b/tests/test_server.py @@ -139,7 +139,6 @@ def test_shutdown_all_session_servers(self, server_config): shutdown_all_session_servers() assert not has_local_server() - @pytest.mark.skip(reason="affecting parallel runs in CI") def test_start_shutdown_start(self, server_config): set_server_configuration(server_config) # print(dpf.core.SERVER_CONFIGURATION) @@ -321,7 +320,6 @@ def test_go_away_server(): reason="Not existing in version lower than 4.0", ) @pytest.mark.skipif(running_docker, reason="Unstable on Docker") -@pytest.mark.skip(reason="affecting parallel runs in CI") def test_start_after_shutting_down_server(): remote_server = start_local_server( config=dpf.core.AvailableServerConfigs.GrpcServer, as_global=False diff --git a/tox.ini b/tox.ini index af1a130f57..c1b36ef38e 100644 --- a/tox.ini +++ b/tox.ini @@ -33,7 +33,7 @@ envlist = pretest,test-{api,launcher,server,local_server,multi_server,api_entry, labels = othertests = pretest,test-{workflow,remote_workflow,remote_operator,service},posttest,kill-servers - ciparalleltests = test-{api,launcher,server,local_server,multi_server,api_entry,custom_type_field,operators},kill-servers + ciparalleltests = test-{api,launcher,local_server,multi_server,api_entry,custom_type_field,operators},kill-servers isolated_build_env = build From 42fb82c1dc036aa968216d6833f589d97d623667 Mon Sep 17 00:00:00 2001 From: moe-ad Date: Thu, 6 Feb 2025 09:29:00 +0100 Subject: [PATCH 5/6] ci: empty commit to trigger workflow From 0aec05943f028f0a1321012f70f7b28219ba8282 Mon Sep 17 00:00:00 2001 From: moe-ad Date: Thu, 6 Feb 2025 11:41:34 +0100 Subject: [PATCH 6/6] ci: another empty commit